c# – CommandTimeout不工作

c# – CommandTimeout不工作,第1张

概述我正在尝试更改SqlCommand查询的超时时间,该方法用于测试给定连接字符串的连接.代码与此类似: using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand("SELECT ...", connection); c 我正在尝试更改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

总结

以上是内存溢出为你收集整理的c# – CommandTimeout不工作全部内容,希望文章能够帮你解决c# – CommandTimeout不工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1236714.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存