.NET 事务技术-System.Transactions.CommittableTransaction 显式事务

作者:vkvi 来源:ITPOW(原创) 日期:2009-8-17

System.Transactions.TransactionScope 实现隐式事务,而 System.Transactions.CommittableTransaction 实现显式事务。

准备工作

  • 添加 System.Transactions 引用(在解决方案的项目/网站上右键);
  • 引用 System.Transactions 名称空间。

示例讲解

using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MySqlServer"].ConnectionString))
{
    using (CommittableTransaction ct = new CommittableTransaction())
    {
        conn.Open();
        conn.EnlistTransaction(ct);
        using (SqlCommand cmd = new SqlCommand())
        {
            cmd.Connection = conn;
            cmd.CommandType = CommandType.Text;
            try
            {
                cmd.CommandText = "insert into TranTable(Priority) values(1)";
                cmd.ExecuteNonQuery();
                cmd.CommandText = "insert into TranTable(Priority) values(256)";
                cmd.ExecuteNonQuery();
                ct.Commit();
                Response.Write("Ok");
            }
            catch (SqlException ex)
            {
                ct.Rollback();
                Response.Write("Error:" + ex.Message);
            }
        }
        conn.Close();
    }
}

代码很像前面两节代码的综合,但功能比传统 .NET 事务技术强。

相关文章