c#调用webservise 的问题

lcn8011 2012-06-22 06:00:28
各位大侠,小弟有个问题请教,我通过WEB引用的方式来调用本身存在的webservise 函数,这个webservice在执行时有先后顺序,我代码如下:

private void button1_Click(object sender, EventArgs e)
{
public kq.ZKWebReference.ZkeeperWebService zkservise = new kq.ZKWebReference.ZkeeperWebService();

if (zkservise.Login(txtuser.Text, txtpassword.Text))//此处是调用的第一个webservice函数
{
bool m;
m = zkservise.ExecuteNonQuery("update a01 set a01101=30 where a0190='05757'");//此处是第2 个webservice函数
MessageBox.Show(m.ToString()); //输出结果跟直接通过webservise 调用结果对不上
}
else
{ MessageBox.Show("用户名或密码错误!"); }
}
因为这个webservise中一组函数之间有先后顺序,我在web下执行调用是可以正常执行结果,可是为什么在程序中却只正确执行了第一个函数,第2个函数没有被正常执行。
我琢磨了很久,会不会是因为程序中每调用一次函数都是独立执行前后没有关联,那如何去保持这种函数间的联系了,请各位高手指教,小弟感激不尽!!
...全文
185 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
段传涛 2012-06-24
  • 打赏
  • 举报
回复
webservise 也可以跟踪的, 你试试。
lcn8011 2012-06-24
  • 打赏
  • 举报
回复
谢谢大家,我的问题解决了
少了 zkservise.CookieContainer = new CookieContainer();
原来 webservise页面调用时有个session对象在保持函数调用的连续性,就是当login登录成功后后面的函数才能被执行,而客户端在调用webservise时候也需要创建这么一个container 来保持,就可以调用下面的函数了
段传涛 2012-06-24
  • 打赏
  • 举报
回复
ExecuteNonQuery()
有时候正常执行的也可能为空, 我的都出现过。
换个方法试试。
lcn8011 2012-06-24
  • 打赏
  • 举报
回复
我跟踪过zkservise.Login(txtuser.Text, txtpassword.Text)这个函数是有返回值,在这条语句是被正确执行了,但是执行到zkservise.ExecuteNonQuery() 返回值却变成了空。我通过网页调用在执行login之后,再执行ExecuteNonQuery() 返回值不是空
lcn8011 2012-06-23
  • 打赏
  • 举报
回复
楼上 你可能误解我的意思,本身的webservise函数已经固定好的,我没法改变函数,而且我早.asmx这个页面中直接调用是没有问题的,但是放到程序里就是不行,每次执行函数时候都是第一次在执行,前后没有关联
  • 打赏
  • 举报
回复
你有debug跟踪过zkservise.Login(txtuser.Text, txtpassword.Text)方法的返回值吗?
lovelcl 2012-06-23
  • 打赏
  • 举报
回复
没有正确执行是什么意思,是直接跳过zkservise.ExecuteNonQuery()函数了,还是这个函数没有返回值
__天涯寻梦 2012-06-22
  • 打赏
  • 举报
回复
登录之后服务器记录并返回一个标识符,其他方法参数加上这个标识符,服务器通过判断标识符是否有效决定知否执行方法内容

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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