加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – CommandTimeout不工作

发布时间:2020-12-15 17:43:49 所属栏目:百科 来源:网络整理
导读:我正在尝试更改SqlCommand查询的超时时间,该方法用于测试给定连接字符串的连接.代码与此类似: using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand("SELECT ...",connection); cmd.CommandTimeout
我正在尝试更改SqlCommand查询的超时时间,该方法用于测试给定连接字符串的连接.代码与此类似:
using (SqlConnection connection = new SqlConnection(connectionString))
    {
      SqlCommand cmd = new SqlCommand("SELECT ...",connection);
      cmd.CommandTimeout = 10;
      connection.Open();
      SqlDataReader reader = cmd.ExecuteReader();
      ...
      connection.Close();
    }

我想在这里有一个短暂的超时,因为我只是想测试这个连接字符串是否可以.
但是,无论我在CommandTimeout上设置了什么数字(我尝试了0,1,2,4,10,30,60,120),我为虚拟连接字符串获得的实时时间总是相同(总运行时间约为15秒).

所以,在我看来,由于某些原因,我在CommandTimeout上设置的值被忽略.

任何想法为什么?

解决方法

我想你真的搞错SqlCommand.CommandTimeout是什么.根据 this MSDN reference:

Gets or sets the wait time before terminating the attempt to execute a command and generating an error.

在您的情况下,您正在执行一个DataReader并逐步浏览查询(无论是什么).每个Read()只需要很少的时间,这就是为什么你不会超过你的超时时间.

编辑:

如果使用错误的连接字符串,则超时不会是命令超时,但它将是连接时间.默认为15秒.那是在您的情况下有效的超时.

你将要调用方法调用SqlConnection.Open(),而不是SqlCommand.ExecuteReader().因此ConnectionTimeout属性将成为有效的超时值.

SqlConnection.ConnectionTimeout Property MSDN Reference

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读