是winform 的查询
才查10000多有时就会出现“超时时间已到。在操作完成之前超时时间已过或服务器未响应”的异常。。
已经设置
cmd.CommandTimeout = 3000;查询的条件也设置了索引。问题已经困扰了一段时间了。。
各位大大,给点意见

解决方案 »

  1.   

    cmd.CommandTimeout = 0试试
      

  2.   

    看一下你的sql在SqlServer里执行需要多长时间啊
      

  3.   

    确认一下你的SQL服务器版本,还有查询关键字等等一类的东西最好贴上你的查询码,还有操作系统版本, SQL版本等等
      

  4.   

    操作系统版本:win2003
    SQL版本:2005企业版
      

  5.   


    没几句代码。。
    我用是微软的企业库。。
    直接返回DATASET的
      

  6.   

    查询按钮事件
     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);
      

  7.   

    10000条数据对于数据库来说并不多,但是放在DataSet里,占内存太大
      

  8.   

    不会,我曾经用dataset存过8W条数据,没有问题,速度很快
      

  9.   

    用的dal类?db.ExecuteDataSet(dbcommand);这个我没用过,不知道哪儿有问题
      

  10.   

    有可能是因为别的原因.我做过一个程序,连接互联网上的sqlserver经常才等待2-3秒就抛这个异常.多刷几次就好了.换用sqladapter填充dataset试试
      

  11.   

    你看看是cmd.open()的时候抛的异常.还是cmd执行sql的时候抛的异常
      

  12.   

    刚才改成 SqlDataReader
    查了两次60000多的数据,都没报错。。
    不知道问题解决了没有
      

  13.   


    应该没有解决问题,SqlDataReader性能是比DataTable好一些,但不至于这么大的差距,要么是读取到DataTable的方法有问题或数据库死锁可能。
      

  14.   


    定义一个SqlDataAdapter, DataSet
    将你的sql语句赋给SqlDataAdapter的SelectCommandText然后Fill填充DataSet
    看看怎么样?
      

  15.   

    我没有读取DATATABLE的方法。。我是直接将DATATABLE 赋值 给DATAGRIDVIEW。。
    数据库的死锁。。
    这个不知道有没有可能。。
    我有几个软件,每隔30S查询一次
     
      

  16.   


    是有时候第一次也超时
    很奇怪。。
    现在改成SQLDATAREADER貌似可以了。。
    等下个星期运行试试。。
      

  17.   

    超时很正常,网络延时,SQL语句优化不好,数据库沉淀过多
      

  18.   

    SELECT 字段 FROM 表名 WITH (NOLOCK)
      

  19.   

    这种情况,一般考虑死锁。看了你的代码,我估计代码问题不大。估计问题处在Sqlserver服务器上,建议把服务重新启动下。
      

  20.   

    我读取过300万条到内存中,做缓存。也都没有问题
    估计楼主的问题应该是死锁了,如果不怕脏读的话,可以加个NOLOCKSELECT * FROM YouTable WITH(NOLOCK) WHERE YouWhere或者用DataReader
      

  21.   

    SELECT * FROM YouTable WITH(NOLOCK) WHERE YouWhere这个方法没办法解决。