2

これはスタック オーバーフローに関する私の最初の投稿ですので、n00b の誤りを許してください (また、遠慮なく指摘してください)。

次の例で説明するように、部分クラスを拡張することにより、VB.NET (Visual Studio 2010 を使用) で複数の TableAdapter にトランザクションを実装しようとしています。

http://blah.winsmarts.com/2006/06/18/the-definitive-tableadapters--transactions-blog-post.aspx

madprops.org/blog/typed-datasets-and-sqltransaction/

stackoverflow.com/questions/2342289/net-tableadapter-to-dataadapter

ただし、デザイナーによって作成されたプライベート フィールドを公開しようとすると、エディターで下線が引かれ、次のエラーが表示されます。

「_adapter」が宣言されていません。保護レベルにより、アクセスできない場合があります。

このサイトとグーグルを検索しても、役立つものは何も見つかりませんでしたが、間違ったキーワードを検索しているようです。

MyDataset.vb のコードは次のとおりです。

Partial Public Class MyTableAdapter
    Public Property MyTransaction() As SqlTransaction
        Get
            Return _adapter.SelectCommand.Transaction
        End Get
        Set(ByVal value As SqlTransaction)
            If _adapter Is Nothing Then
                InitAdapter()
            End If
            Connection = value.Connection
            _adapter.InsertCommand.Transaction = value
            _adapter.UpdateCommand.Transaction = value
            _adapter.DeleteCommand.Transaction = value
        End Set
    End Property

End Class

デザイナーコードは次のとおりです。

Partial Public Class MyTableAdapter
    Inherits Global.System.ComponentModel.Component

    Private WithEvents _adapter As Global.System.Data.SqlClient.SqlDataAdapter
    Private _connection As Global.System.Data.SqlClient.SqlConnection
    Private _transaction As Global.System.Data.SqlClient.SqlTransaction
    Private _commandCollection() As Global.System.Data.SqlClient.SqlCommand

何か不足していますか、またはこれは VB では不可能ですか (私が見た例はすべて C# にあります)。

どんな助けでもTIA!

4

1 に答える 1

0

Adapter クラスからパブリック プロパティ/メソッドにアクセスできますか?

間違った名前空間で部分クラスを作成した可能性があると思います。それはある必要がありますNamespace MyDataSetTableAdapters

于 2010-11-12T21:23:23.170 に答える