我的问题 :调用存储过程在30秒后超时。 似乎是自动生成的表适配器不提供修改它的接口。
问 :我怎样才能改变我的SP调用的超时值?
环境 :的Visual Studio 2012,代码在VB.NET,数据库:SQL Server 2008 R2中。 我使用与DataSet设计用于CRUD操作的数据集,也叫存储过程的。 自动生成的表适配器从代码中调用。
研究已经完成 :我已经找到了C#项目一些答案,但我在语言一点经验: 交1
我的问题 :调用存储过程在30秒后超时。 似乎是自动生成的表适配器不提供修改它的接口。
问 :我怎样才能改变我的SP调用的超时值?
环境 :的Visual Studio 2012,代码在VB.NET,数据库:SQL Server 2008 R2中。 我使用与DataSet设计用于CRUD操作的数据集,也叫存储过程的。 自动生成的表适配器从代码中调用。
研究已经完成 :我已经找到了C#项目一些答案,但我在语言一点经验: 交1
由于您使用强类型TableAdapter
刚刚保存DataAdapter
为protected
财产,你不能改变所有SqlCommand
的CommandTimeout
小号直接。 你可以做的是延长这个自动生成的类(这是一个Partial Class
)。 因此,创建具有相同名称的另一个类在同一个目录中,例如: Public Partial Class YourTableAdapter
。
现在,您可以创建可访问新的属性或方法DataDapter
。 需要注意的是类具有相同的(自动生成)的命名空间坐。 例如:
Namespace ApplicationName.DataSetNameTableAdapters
Partial Public Class YourTableAdapter
Public Property CommandTimeout As Int32
Get
Return Me.CommandCollection(0).CommandTimeout
End Get
Set(value As Int32)
For Each cmd As SqlCommand In Me.CommandCollection
cmd.CommandTimeout = value
Next
End Set
End Property
End Class
End NameSpace
不要延长原班( .designer.vb
),它会在设计的每一个变化被覆盖。
现在你可以做:
Dim adapter = new YourTableAdapter()
adapter.CommandTimeout = 60 * 30 ' 30 minutes