求大神帮忙 郁闷死我了!
----------------------客户端调用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的返回值或者Ref参数返回异常信息查看
[解决办法]
[解决办法]
不回答问题能白领分吗。
[解决办法]
看看是不是你传参的问题,DateTime的参数比较容易格式不兼容。建议使用SqlParameter来传参数。
你在客户端把那3个参数直接用字符串传,用和你做WebService测试时一样的数据看一下,是不是返回值还有不同?
[解决办法]
断点调试下,得到sql语句,在sql2005/或其他 上运行下,看结果是不是想要的