日期:2014-05-18  浏览次数:20869 次

求大神帮忙 郁闷死我了!
----------------------客户端调用Webservice里面的方法------------------------------
if (ser.IsMake(txtDistinction.Text.Trim(), lblType.Text.Trim(), 2))
  {
  MessageBox.Show("该飞达已经校正!");
  txtDistinction.Text = "";
  txtDistinction.Focus();
  return;
  }



-----------------------Webservice里面的方法--------------------------------------------------
public bool IsMake(string dis, string type, int oid)
  {
  bool flag = false;
  string sql = "select Top(1) * from Logbook where Distinction='{0}' and OperateID={1} order by DateTime desc";
  sql = string.Format(sql, dis, oid);
  DataTable dst = ExecuteQuery(sql);

  string sqlType = "select * from Type where TypeName='{0}' and Operate={1}";
  sqlType = string.Format(sqlType, type, oid);
  DataTable dstType = ExecuteQuery(sqlType);
  if (dst != null && dstType != null && dst.Rows.Count > 0 && dstType.Rows.Count > 0)
  {
  DateTime tim = Convert.ToDateTime(dst.Rows[0]["DateTime"].ToString());
  tim.AddMonths(Convert.ToInt32(dstType.Rows[0]["Cycle"].ToString()));
  string sqlReturn = "select * from Logbook where Distinction='{0}' and DateTime>='{1}' and DateTime<='{2}' and OperateID={3}";
  sqlReturn = string.Format(sqlReturn, dis, dst.Rows[0]["DateTime"].ToString(), tim.ToString(), oid);
  DataTable dstRe = ExecuteQuery(sqlReturn);
  if (dstRe != null && dstRe.Rows.Count > 0)
  {
  flag = true;
  }
  }
  return flag;
  }


-----------------------用三个SQL语句都有的数据去测试HTTP里面的Webservice返回的是true 但客户端调用那返回的确是false 传入的参数都是一样的 返回结果却不同我晕死了 求大神帮忙啊!

------解决方案--------------------
不能吧,webservice直接return true;试下。
如果为true,就还是你sql中返回的问题

------解决方案--------------------
跟踪一下代码,用两种方式再测试一下,看看传过来的值是不是真的一样,会不会有空格在里边。
------解决方案--------------------
在服务器端单步调试(直接进入webservice方法体)。
------解决方案--------------------
探讨
我都调试过了 在服务器端调试WebService的方法体返回的是True 我把Flag设置为bool flag=true;则没有问题 但是我就是想知道 为什么服务器端没有问题 到客户端就出问题了呢 数据都是一样的.....

------解决方案--------------------
也可能是发生了异常,你可以通过Webservice的返回值或者Ref参数返回异常信息查看
------解决方案--------------------
探讨
我都调试过了 在服务器端调试WebService的方法体返回的是True 我把Flag设置为bool flag=true;则没有问题 但是我就是想知道 为什么服务器端没有问题 到客户端就出问题了呢 数据都是一样的.....

------解决方案--------------------
不回答问题能白领分吗。
------解决方案--------------------
看看是不是你传参的问题,DateTime的参数比较容易格式不兼容。建议使用SqlParameter来传参数。
你在客户端把那3个参数直接用字符串传,用和你做WebService测试时一样的数据看一下,是不是返回值还有不同?
------解决方案--------------------
断点调试下,得到sql语句,在sql2005/或其他 上运行下,看结果是不是想要的