目前在学习webservice中遇到一个问题始终无法解决,请高手指点
webservice部分代码,给调用方返回一个DataSet
[WebMethod]
public DataSet getDate(string str)
{
string constr = "server=.;uid=sa;pwd=;database=pubs";
string sql = "select * from authors where au_lname like '%"+str+"%'";
SqlConnection con = new SqlConnection(constr);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = sql;
DataSet ds = new DataSet();
SqlDataAdapter ada = new SqlDataAdapter(cmd);
ada.Fill(ds,"info");
return ds;
}
}
winform部分,在dataGrid中显示查询返回的数值
localhost.myService ws = new WinApp.localhost.myService(); //注册webService
private void selectbtn_Click(object sender, System.EventArgs e)
{
this.selectbtn.Enabled = false;
string str = this.selecttxt.Text.Trim();
IAsyncResult ar = ws.BegingetDate(str,new AsyncCallback(myCallback),ws);
}
public void myCallback(IAsyncResult ar)
{
localhost.myService iws = (localhost.myService)ar.AsyncState;
DataSet ds = ws.EndgetDate(ar);
this.mydataGrid.DataSource = ds.Tables["info"];
this.selectbtn.Enabled = true;
}
整个过程可以执行,问题出现在
this.mydataGrid.DataSource = ds.Tables["info"];
一旦给dataGrid的DataSource赋值程序就死掉了
同步调用时无问题,使用返回其他值的异步调用也无问题
就是在dataGrid使用异步调用时无法显示数据
[求助]关于webservice的异步调用的问题,诚心请教各位