标题:[求助]关于webservice的异步调用的问题,诚心请教各位
只看楼主
tea
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-3-15
 问题点数:0 回复次数:3 
[求助]关于webservice的异步调用的问题,诚心请教各位

目前在学习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 异步 诚心 
2006-03-15 18:15
xianzhenfly
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-10-20
得分:0 
顶。我现在也在学习webservice
2007-10-23 16:16
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
得分:0 
DataSet ds = ws.EndgetDate(ar);

这个方法调错了吧

有实力才会有魅力 实力来自坚持不懈的努力
2007-10-23 16:28
没有注册
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-8-16
得分:0 

扯到界面的

需要invoke

2007-10-23 17:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-50624-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.655378 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved