Web Service获取实体类函数只能正确运行一次
/* * 由SharpDevelop创建。 * 用户: Kingsun * 日期: 14-5-25 * 时间: 23:06 * * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件 */ using System; using System.Runtime.Serialization; using System.IO; namespace QrBikeWS { /// <summary> /// Description of bike. /// </summary> public class Bike { private string _id; private string _name; private string _phone; private string _dorm; private string _color; private string _areas; private char _state; public Bike() { } public string id { get{return _id;} set{this._id=value;} } public string name { get{return _name;} set{this._name=value;} } public string phone { get{return _phone;} set{this._phone=value;} } public string dorm { get{return _dorm;} set{this._dorm=value;} } public string color { get{return _color;} set{this._color=value;} } public string areas { get{return _areas;} set{this._areas=value;} } public char state { get{return _state;} set{this._state=value;} } } }
/* * 由SharpDevelop创建。 * 用户: Kingsun * 日期: 14-5-25 * 时间: 22:07 * * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件 */ using System; using System.Collections; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text.RegularExpressions; 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; namespace QrBikeWS { /// <summary> /// Description of DBHelper. /// </summary> public class DBHelper:IDisposable { public static SqlConnection sqlCon; public DBHelper() { if(sqlCon==null) { sqlCon=new SqlConnection(); sqlCon.ConnectionString=@"Data Source=GODSHIPSQLEXPRESS;User ID=qrbike;Password=qrbike"; sqlCon.Open(); } } //销毁函数 public void Dispose() { if(sqlCon!=null) { sqlCon.Close(); sqlCon=null; } } //获取Bike记录 public Bike getBike(string id) { Bike bike = new Bike(); try { string sql="select id,name,phone,dorm,color,areas,state from bike where id="+id; SqlCommand cmd=new SqlCommand(sql,sqlCon); SqlParameter para=new SqlParameter(id,SqlDbType.VarChar); para.Value="%"+id+"%"; cmd.Parameters.Add(para); SqlDataReader reader=cmd.ExecuteReader(); if(reader.HasRows) { while(reader.Read()) { bike.id=(string)reader.GetValue(0); bike.name=(string)reader.GetValue(1); bike.phone=(string)reader.GetValue(2); bike.dorm=(string)reader.GetValue(3); bike.color=(string)reader.GetValue(4); bike.areas=(string)reader.GetValue(5); bike.state=(char)reader.GetValue(6); } } reader.Close(); cmd.Dispose(); }catch(Exception e){} return bike; } } }
/* * 由SharpDevelop创建。 * 用户: Kingsun * 日期: 14-5-25 * 时间: 21:45 * * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件 */ using System; using System.Data; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Collections; namespace QrBikeWS { [WebService] public class Soap : System.Web.Services.WebService { DBHelper dbhelper = new DBHelper(); /// <summary> /// Logs into the web service /// </summary> /// <param name="userName">The User Name to login in as</param> /// <param name="password">User's password</param> /// <returns>True on successful login.</returns> [WebMethod(EnableSession=true)] public bool Login(string userName, string password) { //NOTE: There are better ways of doing authentication. This is just illustrates Session usage. UserName = userName; return true; } /// <summary> /// Logs out of the Session. /// </summary> [WebMethod(EnableSession=true)] public void Logout() { Context.Session.Abandon(); } /// <summary> /// UserName of the logged in user. /// </summary> private string UserName { get {return (string)Context.Session["User"];} set {Context.Session["User"] = value;} } [WebMethod(EnableSession=true)] public Bike getBike(string id) { return dbhelper.getBike(id); } } }
第二次调用函数返回:
很明显第二次调用时,没有生成bike存储相关数据并返回,返回了一个空的bike,而且只显示类型为char的变量state。这是为什么呢?难道不是每次调用都连接都数据库获取数据,生成新的bike赋值并返回的吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
更改属性state类型为string就可以了