在Visual Studio 2012 VB项目中更改表适配器(调用存储过程)的超时?

时间:2014-10-01 10:10:02

标签: sql vb.net visual-studio-2012 tableadapter

我的问题:调用存储过程会在30秒后超时。似乎自动生成的表适配器不提供更改它的接口。

问题:如何更改SP呼叫的超时值?

环境:Visual Studio 2012,VB.NET中的代码,数据库:SQL Server 2008 R2。我正在使用DataSet Designer的数据集进行CRUD操作,并调用Store Procedures。从代码中调用自动生成的表适配器。

已完成研究:我找到了一些C#项目的答案,但我对该语言的经验不多:post 1

1 个答案:

答案 0 :(得分:0)

由于您使用的是强类型TableAdapter,只保留DataAdapter protected属性,因此您无法更改所有SqlCommand' s {直接{3}}你可以做的是扩展这个自动生成的类(它是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