由于最近在做一个安卓的项目,用到安卓与sqlServer的交互通信问题 上网查资料知道了需要写一个的东西,于是粗略的学习了一下,下面将自己的心得与大家分享一下
首先我们要建立一个WebSerice服务,完成初步的配置
打开后我们能够发现系统已经为我们写好了一个程序员学习过程中都能遇到的服务 "Hello World"
这时我们运行程序,就会看到这个写好的服务在网络端的样子
接下来创建一个数据库连接,可以使用vs中的创建数据库连接实现,得到连接字符串,然后创建一个操作数据库的类DBOperation
using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.sqlClient; using System.Text.RegularExpressions; using System.Collections; using System.Collections.Generic; namespace MysqLWebService { /// <summary> /// 一个数据库操作的类,对所有sqlServer的操作都写在这个类中, /// 使用时直接实例化一个对象然后直接调用就可以了 /// </summary> public class DBOperation : Idisposable { public static sqlConnection sqlCon;//用于连接数据库 //设置连接字符串 private string ConServerStr = @"Data Source=.;Initial Catalog=MysqL;Persist Security Info=True;User ID=sa;Password=sa@123"; //默认的构造函数 public DBOperation() { if (sqlCon != null) { sqlCon = new sqlConnection();//创建连接 sqlCon.ConnectionString = ConServerStr;//设置连接字符串 sqlCon.open();//打开数据库 } } //关闭销毁函数,相当于Close() public void dispose() { if (sqlCon != null) { sqlCon.Close(); sqlCon = null; } } /// <summary> /// 获取数据表中的所有数据 /// </summary> /// <returns>返回一个</returns> public IList<string> selectAllUsersInfo() { List<string> list = new List<string>(); try { string sql = "select * from MysqL.dbo.Login ";//设置sql语句 sqlCommand cmd = new sqlCommand(sql,sqlCon); sqlDataReader read = cmd.ExecuteReader(); while (read.Read()) { //将结果集信息添加到返回向量中 list.Add(read[0].ToString()); list.Add(read[1].ToString()); list.Add(read[2].ToString()); } read.Close(); cmd.dispose(); } catch (Exception) { } return list; } public int userLogin(string UserName,string UserPwd) { try { string sql = "select COUNT (*) as numeber from Login where UserName='" + UserName + "' and UserPwd='" + UserPwd + "'"; sqlCommand cmd = new sqlCommand(sql,sqlCon); int flag = Convert.ToInt32(cmd.ExecuteScalar()); cmd.dispose(); return flag; } catch (Exception) { return 0; } } /// <summary> /// 向数据库中添加GPS数据 /// </summary> /// <param name="GPS_Longitude">经度</param> /// <param name="GPS_Latitude">纬度</param> /// <returns></returns> public int addGPSPoint(double GPS_Longitude,double GPS_Latitude) { try { string sql = "insert into GPS (GPS_Longitude,GPS_Latitude) values(" + GPS_Longitude + "," + GPS_Latitude + ")"; sqlCommand cmd = new sqlCommand(sql,sqlCon); int numeber = cmd.ExecuteNonQuery(); cmd.dispose(); return numeber; } catch (Exception) { return 0; } } } }
然后在主函数中写相应的方法,实例化数据库操作的类,调用其中的方法
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace MysqLWebService { /// <summary> /// Service1 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolBoxItem(false)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 // [System.Web.Script.Services.ScriptService] public class Service1 : System.Web.Services.WebService { DBOperation mydbOperation = new DBOperation(); [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod(Description = "验证用户登录,成功返回1,失败返回其他")] public int UserLogIn(string UserName,string UserPwd) { return mydbOperation.userLogin(UserName,UserPwd); } [WebMethod(Description = "向数据库中添加GPS数据")] public int addGPSPoint(double GPS_Longitude,double GPS_Latitude) { return mydbOperation.addGPSPoint( GPS_Longitude,GPS_Latitude); } } }
至此 代码部分填写完毕 然后我们运行一下看看结果
点击UserLogIn方法,填写其中的数据(该数据存在与数据库中),点击调试就可查看结果
最终结果要在Android中解析这段语言得到自己需要的值
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。