[この記事は18年前に書かれました]
汎用的なコードで、トランザクション処理を行うにはDbTransactionクラスを使用します。 正常に終了した場合は、Commit()、例外発生時はRollback()メソッドを呼びます。
using System.Configuration; using System.Data.Common; using System.Data; ... ConnectionStringSettings setting = System.Configuration.ConfigurationManager.ConnectionStrings["OracleTest"]; DbProviderFactory factory = DbProviderFactories.GetFactory(setting.ProviderName); using (DbConnection con = factory.CreateConnection()) { con.ConnectionString = setting.ConnectionString; con.Open(); using (DbTransaction tran = con.BeginTransaction(IsolationLevel.Serializable)) { try { using (DbCommand cmd = con.CreateCommand()) { // トランザクションオブジェクトのセット cmd.Transaction = tran; cmd.CommandText = "insert into test(column1,column2) values('103','test')"; int rows = cmd.ExecuteNonQuery(); } // コミット tran.Commit(); } catch { // 例外が発生した場合はロールバック tran.Rollback(); } finally { if (con != null) { con.Close(); } } } }
(※).NET Framework version 2.0新機能
コメント