c# – CommandTimeout不工作

前端之家收集整理的这篇文章主要介绍了c# – 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

原文链接:https://www.f2er.com/csharp/96761.html

猜你在找的C#相关文章