Oracle transaction code

from http://okwakatta.net/code/ado19.html

private void button_Click(object sender, EventArgs e)
{
    ExecuteNonQuery("UPDATE bread SET name = 'あんぱん(変更)' WHERE id = '0001'");
}

// 参照設定にはOracle.DataAccess.dllを設定します。
// using Oracle.DataAccess.Client;
/// <summary>
/// SQLを実行します。
/// </summary>
/// <param name="sql">実行するSQL文です</param>
public void ExecuteNonQuery(string sql)
{
    using (OracleCommand command = new OracleCommand())
    {
        OracleConnection conn = new OracleConnection();
        conn.ConnectionString = conn.ConnectionString = @"User Id=test; Password=pass; Data Source=" +
        "(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))" +
        "(CONNECT_DATA =(SERVER = DEDICATED)))";


        // トランザクションを開始します。
        conn.Open();
        OracleTransaction transaction = conn.BeginTransaction(IsolationLevel.ReadCommitted);

        try
        {
            command.CommandText = sql;
            command.Connection = conn;
            command.Transaction = transaction;
            command.ExecuteNonQuery();

            //トランザクションをコミットします。
            transaction.Commit();
        }
        catch (System.Exception)
        {
            //トランザクションをロールバックします。
            transaction.Rollback();
            throw;
        }
        finally
        {
            conn.Close();
        }
    }
}






留言

熱門文章