- 題名: ADO.NET トランザクションについて
- 日時: 2011/05/16 10:11:09
- ID: 28571
- この記事の返信元:
- (なし)
- この記事への返信:
- [28573] Re[1]: ADO.NET トランザクションについて2011/05/16 11:23:06
- ツリーを表示
ありがとうございます。 以下のように変更することでうまくいきました。 command.Transaction = trn が抜けていたようです。 command.ExecuteNonQueryを調べいる途中に新しい疑問がでてきたのですが、 command.ExecuteNonQueryはInteger型で返り値を持つようです。 正常な更新がされたときは1を返すので、更新処理のところで、 Dim count As Integer count = Update_Record(sql文) if count <> 1 then MessageBox.Show("ERROR.") Exit Sub End If とした方がいいのでしょうか。 特になくとも動くので、どういう意図があるのかよくつかめていません・・・ Private trn as SqlClient.SqlTransaction 'トランザクション Private Sub Button_Update_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Update.Click Try 'トランザクション開始 trn = cn.BeginTransaction '更新処理 Update_Record(sql文) 'コミット trn.Commit() Catch ex As Exception 'エラーメッセージを表示 MessageBox.Show(ex.Message & vbCrLf & ex.StackTrace) 'ロールバック trn.Rollback() End Try End Sub Private Function Update_Record(ByVal sql As String) As Integer Dim command As SqlClient.SqlCommand command = cn.CreateCommand command.Transaction = trn command.CommandText = sql 'コマンド実行 Return command.ExecuteNonQuery End Function
分類:[.NET]