我在做DataSet绑定的时候出现超时错误。
代码SQLHelper
using (SqlConnection conn = new SqlConnection(CONN_STRING_NON_DTC))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds); // 这一句超时了。。。
cmd.Parameters.Clear();
return ds;
}
sql语句如下
select convert(varchar,purchase_date,111) as purchase_date, convert(varchar,register_date,111) as register_date,id /省略/ from ownership where login = @login
附注
我在我机器上可以正常的运行,但是放到服务器上就有超时错误。
我点击一次按钮,上面的代码先后运行2次。但SQL语句不一样。第一次运行没有问题,第二次却超时了,是什么原因啊。为什么第一次不超时,第二次超了,且为什么我机器上没事,服务器上超了。
十万火急。。。。
------解决方案--------------------------------------------------------
为什么会执行2次,把你cmd的TimeOut属性设大点,默认是15秒
------解决方案--------------------------------------------------------
检查一下
debug跟踪一下就知道了
------解决方案--------------------------------------------------------
using (SqlConnection conn = new SqlConnection(CONN_STRING_NON_DTC))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds); // 这一句超时了。。。
cmd.Parameters.Clear();
}
return ds;
ds应该在连接关闭后在返回,你用的是ds在using括号里连接关闭不了,当然超时!!
------解决方案--------------------------------------------------------
是不是数据库锁死了啊?
试试
select convert(varchar,birthdate,111) as birthdate,* from customer with (nolock) where login = @login
------解决方案--------------------------------------------------------
是不是数据的问题?
fill一两条数据跟踪试试