■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();
}
|