我想设置数据库的连接字符串获取在尝试建立连接时终止尝试并生成错误之前所等待的时间,不起作用,还是要等待30-40秒作用,我设置成了5秒,但是还是不起作用,还需要等待很长时间,是不是还需要设置别的属性,请高手指点。

解决方案 »

  1.   

    你这样,sqlcommand cmd = new sqlcommand();
    cmd.timeout = "";至于为什么在连接字符串中不好使,查一查
      

  2.   

    Connection对象和Command对象都有个CommandTimeOut属性,
    连接字符串中设置了 Connect Timeout只对SqlConnection起作用。
    SqlCommand.CommandTimeout
    获取或设置在终止执行命令的尝试并生成错误之前的等待时间。
    等待命令执行的时间(以秒为单位)。默认为 30 秒。
    SqlConnection.ConnectionTimeout
    获取在尝试建立连接时终止尝试并生成错误之前所等待的时间。
    等待连接打开的时间(以秒为单位)。默认值为 15 秒。
      

  3.   

    symbol_bc说的,我都试过,但是不行,这个问题困扰了我们很长时间,我估计得用其他的方式解决。
    我们用客户端页面浏览从数据库里取出的数据,但是因为网络原因或其他原因,不能浏览,解决的问题是如果连不上数据库,页面能快速的跳出连不上数据库,而不是延长很长时间才显示连不上数据库。可能symbol_bc实现了你们自己的想实现的目的,二我们说的可能不一样,而且,我在网上没有搜的答案,有的说connect timeout实际不起作用,可以用timer强行控制。
      

  4.   

    在连接字符串中进行TimeOut的设置,不要使用Command的TimeOut。
    ---在 CommandTimeout 中应避免值 0,否则会无限期地等待执行命令。 当对上下文连接(要用连接字符串中的“context connection=true”打开的 SqlConnection)执行命令时,CommandTimeout 将不起作用。 此属性是在执行命令或处理结果期间所有网络读取的累积超时。在返回第一行之后,超时仍然可能发生,但只包括网络读取时间,而不包括用户处理时间。
      

  5.   

    给一个例子:
    sqlConnectionString="Data Source=****;Initial Catalog=***;uid=****;pwd=***;Integrated Security=false;Connect Timeout=30" 
      

  6.   

    谢谢各位,不过连接超时是没法避免的,因为它涉及网络和连数据,使用我用connection timeout=5无法缩短如果连接超时,缩短提示无法连接的时间,还是要等待很长时间,不过我找到解决办法了,用timer控件控制,时间到了提示连接不上,这样就达到了同样的目的。