0

私は 2 つの方法を実行したいと考えています。1 つのレジスタのみを挿入する方法と、複数のレジスタ (リスト) に挿入する方法です。

しかし、同じINSERTコードを使用するためだけに、2番目のメソッドで最初のメソッドを呼び出す必要があります。

2番目の方法で開かれた接続を最初の方法で使用する方法はありますか?すべてに対してロールバックを呼び出すことができますか?

Shared Sub Gravar(ByRef Pessoa As Pessoa)
    Try
        Using con As New myConnection
            con.Open()
            If Pessoa.Id = -1 Then
                Insert(Pessoa, con)
            Else
                Update(Pessoa, con)
            End If
        End Using
    Catch ex As Exception
        Throw
    End Try
End Sub

Shared Sub Gravar(ByRef Pessoas As List(Of Pessoa))
    Try
        Using con As New myConnection
            con.Open()
            con.OpenTransaction()
            For Each Pessoa As Pessoa In Pessoas
                Gravar(Pessoa)
            Next
            con.Commit()
        End Using
    Catch ex As Exception
        Throw
    End Try
End Sub

ありがとう

4

1 に答える 1

0

このように機能します-単一および複数のメソッドの両方が接続を作成し、接続を作業を行う3番目のメソッドに渡します。

Shared Sub Gravar(ByRef Pessoa As Pessoa)
    Try
        Using con As New myConnection
            con.Open()
            _Gravar(Pessoa, con)
        End Using
    Catch ex As Exception
        Throw
    End Try
End Sub

Shared Sub Gravar(ByRef Pessoas As List(Of Pessoa))
    Try
        Using con As New myConnection
            con.Open()
            con.OpenTransaction()
            For Each Pessoa As Pessoa In Pessoas
                _Gravar(Pessoa, con)
            Next
            con.Commit()
        End Using
    Catch ex As Exception
        Throw
    End Try
End Sub

Private Shared Sub _Gravar(ByRef Pessoa As Pessoa, ByVal con As myConnection)
    Try
        If Pessoa.Id = -1 Then
            Insert(Pessoa, con)
        Else
            Update(Pessoa, con)
        End If
    Catch ex As Exception
        Throw
    End Try
End Sub
于 2013-07-04T18:37:31.793 に答える