[急]silverlight如何调用webservice多次查询数据库??

bu_ge 2009-11-04 12:28:39
public Page_Layout(List <Canvas> list_Can)//List <Ellipse> list_Ell
{
InitializeComponent();
get_DATA("aaa");//第一次调用
get_DATA("bbb");//我想再调用一次,但是获取不到数据,只得到一次的运行数据
}

private void get_DATA(string jh)
{
ServiceReference_data.Service1SoapClient userService = new ServiceReference_data.Service1SoapClient();
userService.Get_DAA05Completed += new EventHandler <ServiceReference_data.Get_DAA05CompletedEventArgs>(get_d);
string s = "select * from table_name where jh="' + jh + '";
userService.Get_DAA05Async(s);
}

void get_d(object sender, ServiceReference_data.Get_DAA05CompletedEventArgs e)
{
if (e.Error == null)
{
for (int i = 0; i < e.Result.Count; i++)
{
CModel Ds_Model = new CModel ();

data.YCZMC = e.Result[i];
i++;
data.XCH = e.Result[i];

list_ds.Add(Ds_Model);
}
}
}
我想多次调用webservice访问数据库,请高手帮忙指点一下,谢谢!


运行顺序:
get_DATA("aaa");------>get_DATA(string jh);------>get_DATA("bbb");------->
get_DATA(string jh);-------->void get_d(object sender, ServiceReference_data.Get_DAA05CompletedEventArgs e)


void get_d(object sender, ServiceReference_data.Get_DAA05CompletedEventArgs e);
最后运行了两次,参数都是"bbb"
...全文
197 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bu_ge 2009-11-05
  • 打赏
  • 举报
回复
感谢两位回复,我研究一下
jv9 2009-11-05
  • 打赏
  • 举报
回复
你是想实现同步进行调用WCF,在你的get_DATA中,生成新的对象实例,但是在Server,仅仅分配了一个GUID,所以最终Web service仅匹配一个结果。

解决方法,你可以在两次调用中设置一个时钟,在一次调用完成前,忽略所有callback。

wenjianfu871125 2009-11-04
  • 打赏
  • 举报
回复
get_DATA("aaa");//第一次调用
get_DATA("bbb");//我想再调用一次,但是获取不到数据,只得到一次的运行数据
不能这样连着写,因为ServiceReference_data.Service1SoapClient userService = new ServiceReference_data.Service1SoapClient();
userService.Get_DAA05Completed += new EventHandler <ServiceReference_data.Get_DAA05CompletedEventArgs>(get_d);
每次调用get_DATA时都是从新new了服务对象。
整个过程你用一个服务对象操作试试。或是你把调用get_DATA这个方法写开,别写在一个事件里

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧