我的TableAdapter
是在ADO.NET数据集中定义的。我的存储过程在SSMS中执行50秒。当我试图在应用程序中执行它时,我会超时。
如何设置TableAdapter
的超时连接值?
答案 0 :(得分:1)
我们可以在两个地方设置超时。
SqlConnection
SqlCommand
SqlConnection
有 ConnectionTimeout
属性。它指定ADO.Net在尝试连接服务器时等待的时间。如果没有与服务器建立连接(网络关闭/服务器未运行等),则抛出异常。
SqlCommand
有 CommandTimeout
属性。它指定执行命令后结果返回的等待时间(您调用Execute
/ ExecuteNoQuery
等)。如果在指定时间内未返回任何结果,则会引发异常。默认情况下,命令超时为30秒。因此,如果命令花费50秒,您将获得异常。
对于SqlConnection
和SqlCommand
,这很简单,只需在对象上设置属性的值即可。
对于TableAdapter
,您有两种方法可以设置ConnectionTimeout
(两者都导致相同的输出)。首先是在连接字符串中设置。其次是在为适配器设置连接时将其设置在Advanced
属性对话框中。
对于CommandTimeout
,您需要从适配器访问超时的特定命令。如果select命令正在爆炸,您可以使用:
var ta = new YouTableAdapter();
ta.Adapter.SelectCommand.CommandTimeout = 100;
答案 1 :(得分:0)
您需要更改连接字符串的超时而不是表适配器:
祝你好运。