[この記事は19年前に書かれました]
汎用的なコードで、トランザクション処理を行うには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新機能


コメント