C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 49 を表示中)
■26558 / )  Re[4]: DBの連続更新でエラー時rollbackがされない
□投稿者/ ありあり (10回)-(2008/10/14(Tue) 13:47:22)
No26552 (みきぬ さん) に返信
> update文1を実行した後で、明示的に trn.Rollback(); を実行してみれば、ロールバックが本当に利くかどうか判断できるでしょう。
> 
> # DBはなんでしょね。実は MySQL だったりとか。

DBはmysqlです。1行目実行後、rollbackしてみたのですが、ロールバックされませんでした。
                    
          IDbCommand comm = conn.CreateCommand();
                    comm.Transaction = trn;
                    int count = 0;
                    foreach (string sql in updateSql) {
                        
                        comm.CommandText = sql;
                        try {
                            ret_cd = comm.ExecuteNonQuery();
                            count++;
                            if (count == 1) {
                                trn.Rollback();
                            }
                        } catch (Exception ex) {
                            trn.Rollback();
                            rollbackFlg = true;
                            break;
                        }
                    }

                    //すべてのsql文が正常にUPDATEされた場合
                    if (rollbackFlg == false) {
                        
                        //trn.Commit();
                    
                    } 

返信 編集キー/


管理者用

- Child Tree -