表适配器由于超时而无法正常工作



我的TableAdapter是在 ADO.NET 数据集中定义的。我的存储过程在 SSMS 中执行 50 秒。当我尝试在应用程序中执行它时,我超时。

如何设置TableAdapter的超时连接值?

我们可以在两个地方设置超时。

  1. SqlConnection
  2. SqlCommand

SqlConnection拥有ConnectionTimeout财产。它指定 ADO.Net 尝试连接到服务器时等待的时间。如果未与服务器建立连接(网络关闭/服务器未运行等),则会引发异常。

SqlCommand拥有CommandTimeout财产。它指定执行命令后返回结果的等待时间(您调用Execute/ExecuteNoQuery等)。如果在指定时间内未返回任何结果,则会引发异常。默认情况下,命令超时为 30 秒。因此,如果命令需要 50 秒,您将收到异常。

对于SqlConnectionSqlCommand,这很简单,只需在对象上设置属性的值即可。

对于TableAdapter,您有两种方法可以设置ConnectionTimeout(两者都会导致相同的输出)。首先是在连接字符串中进行设置。其次是在设置适配器连接时在Advanced属性对话框中设置它。

对于CommandTimeout,您需要从超时的适配器访问特定命令。如果 select 命令正在爆炸,您可以使用以下命令:

var ta = new YouTableAdapter();
ta.Adapter.SelectCommand.CommandTimeout = 100;

您需要更改连接字符串上的超时,而不是表适配器上的超时:

SQL 服务器的连接超时

祝你好运。

相关内容

  • 没有找到相关文章

最新更新