是winform 的查询
才查10000多有时就会出现“超时时间已到。在操作完成之前超时时间已过或服务器未响应”的异常。。
已经设置
cmd.CommandTimeout = 3000;查询的条件也设置了索引。问题已经困扰了一段时间了。。
各位大大,给点意见
才查10000多有时就会出现“超时时间已到。在操作完成之前超时时间已过或服务器未响应”的异常。。
已经设置
cmd.CommandTimeout = 3000;查询的条件也设置了索引。问题已经困扰了一段时间了。。
各位大大,给点意见
SQL版本:2005企业版
没几句代码。。
我用是微软的企业库。。
直接返回DATASET的
string strSql = " SELECT [UniqueID] ,[UserName],[UserPwd],[SMSContent],[SubmitTime] FROM [MESSAGES] WHERE SubmitTime > '2010-07-01' AND SubmitTime < '2010-07-23'";
DataSet ds = dll.GetLstSendJTMessages(strSql);
DATA.DataSource = ds.Tables[0];GetLstSendJTMessages方法的代码
DbCommand dbcommand = db.GetSqlStringCommand(strSql);
return db.ExecuteDataSet(dbcommand);
查了两次60000多的数据,都没报错。。
不知道问题解决了没有
应该没有解决问题,SqlDataReader性能是比DataTable好一些,但不至于这么大的差距,要么是读取到DataTable的方法有问题或数据库死锁可能。
定义一个SqlDataAdapter, DataSet
将你的sql语句赋给SqlDataAdapter的SelectCommandText然后Fill填充DataSet
看看怎么样?
数据库的死锁。。
这个不知道有没有可能。。
我有几个软件,每隔30S查询一次
是有时候第一次也超时
很奇怪。。
现在改成SQLDATAREADER貌似可以了。。
等下个星期运行试试。。
估计楼主的问题应该是死锁了,如果不怕脏读的话,可以加个NOLOCKSELECT * FROM YouTable WITH(NOLOCK) WHERE YouWhere或者用DataReader