这个问题搞了一个星期都没有搞定,郁闷。。偶的系统查询用户的信息,有时返回的信息是对的,有时是别人的,好奇怪。在程序里调用存储返回的结果有的对,有的不对,大多数是不对的。直接执行存储过程,全部是OK的。
根踪传过去的参数值,也是没有问题。你说这就怪了,本以为是什么静态方法,变量或代码分层造成的,可是直接在页面上访问数据库也是如此,
各位高人,你们有遇到过同样情况吗?
根踪传过去的参数值,也是没有问题。你说这就怪了,本以为是什么静态方法,变量或代码分层造成的,可是直接在页面上访问数据库也是如此,
各位高人,你们有遇到过同样情况吗?
直接访问数据库后就打LOG,数据就不对。实在不知道哪个地方出错了
我以前用delphi的時候碰到過很多處,語句在SQL裏執行返回結果正確,但在D裏執行就是不行
public DataSet GetMessageData(string pingCoId, string mobileId)
{
string connectionString = System.Configuration.ConfigurationSettings.AppSettings["HttpService.ConnectionMsgString"];
SqlConnection cn = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand("sp_getHttpClientMessage", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Mobileid", SqlDbType.VarChar);
cmd.Parameters.Add("@PingCoID", SqlDbType.VarChar);
cmd.Parameters.Add("@Flag", SqlDbType.BigInt);
cmd.Parameters["@Mobileid"].Value = mobileId;
cmd.Parameters["@PingCoID"].Value = pingCoId;
long tick = DateTime.Now.Ticks;
cmd.Parameters["@Flag"].Value = tick;
cn.Open(); SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet(); da.Fill(ds); cmd.Parameters.Clear(); cn.Close(); if (ds != null || ds.Tables.Count > 1)
{
DataTable myDataTable = new DataTable();
myDataTable = ds.Tables[0];
int flag = 0;
if (myDataTable.Rows.Count > 1)
{
if (myDataTable.Rows[0]["toNumber"].ToString().Substring(0, 1) == "1")
{
if (_mobileId != myDataTable.Rows[0]["toNumber"].ToString())
{
flag = 1;
}
}
else
{
if (_pingCoId != myDataTable.Rows[0]["toNumber"].ToString())
{
flag = 1;
}
} if (flag == 1)
{
ILog messageLog = LogManager.GetLogger("MessageLog");
messageLog.Error("获取消息日志DAL:pingCoID " + pingCoId + " mobileID:" + mobileId + " sid:" + _sessionId + "\r\n" + " fromNumber:" + myDataTable.Rows[0]["fromNumber"].ToString() + " toNumber:" + myDataTable.Rows[0]["toNumber"].ToString() + "内容: " + myDataTable.Rows[0]["content"].ToString());
}
} } return ds;
}
if (ds != null && ds.Tables.Count > 0)