c# - Tableadapter因超时而无法正常工作

时间:2017-05-22 22:59:06

标签: c# .net winforms timeout tableadapter

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

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

2 个答案:

答案 0 :(得分:1)

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

  1. SqlConnection
  2. SqlCommand
  3. 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;
    

答案 1 :(得分:0)

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

Connection timeout for SQL server

祝你好运。