- - PR -
VB.Netのトランザクション処理でエラーが発生します。
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-25 19:25
VB.Netのトランザクション処理でエラーが発生します。
原因がつかめないのですが、下記エラー内容、ソースから なにかわかりますでしょうか? 環境は、VS2005,SqlServer 2005,Vb.netです。 *エラー内容 System.InvalidOperationException がキャッチされました ExecuteNonQuery は、コマンドに割り当てられた接続が保留状態であるローカルの トランザクションにあるとき、トランザクション オブジェクトを持つコマンドが必要です。 コマンドの Transaction プロパティがまだ初期化されていません。 *ソース1 'トランザクション CSCOM_DbHandler.MSCOM_BeginTrans() *インサートのデータ編集 If InsertKinmuKihon(stKinmuKihon) = False Then CSCOM_DbHandler.MSCOM_Rollback() Return False End If 'コミット CSCOM_DbHandler.MSCOM_Commit() *ソース2 Function InsertKinmuKihon() As Boolean *SQL文生成 *インサートの実行 rowcount = CSCOM_SqlHandler.RunUpdQuery1(strSQL) End Function *ソース3 Function RunUpdQuery1() As Boolean 'SQL文を実行します。 Dim bgnDtm As DateTime = Now Dim cnt As Integer = CSCOM_DbHandler.Command.ExecuteNonQuery() <<<エラーになります。 End Function | ||||||||
|
投稿日時: 2006-07-25 19:37
さかもとと申します。
エラーの内容そのままじゃないかと思うのですが、 >Transaction プロパティがまだ初期化されていません。 この初期化は行ってますか? | ||||||||
|
投稿日時: 2006-07-25 19:44
さかもとさん
返信をありがとうございます。 実は、初期化の意味がわからないんです。 もし、お手数でなければ簡単にお教えお願いできますか? | ||||||||
|
投稿日時: 2006-07-25 19:45
うーん。(;~_~)
xxxCommand クラスのインスタンスにある Transaction プロパティが適切でないと考えられます。 とりあえず、Transaction 周りが例外の原因だと考えられますが、
このように、「俺様クラス」 のメソッドの記述をされても、 ヤマッコさんと同じプロジェクト内のメンバでない限り、明確な判断はできないと思います。 こちらのラッパクラス (?) の、メソッドがどんな実装なのかがわからないからです。 プロジェクト部外者の勝手な想像ですが、以下のことにチャレンジしてみてください。
結局、自分で面倒を見る必要があるなら、Commit、Rollback なるメソッドは不要です。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1