使用 CommittableTransaction 執行顯式事務
準備工作
- 添加 System.Transactions 引用(在解決方案的網站上右鍵);
- 引用 System.Transactions 名稱空間。
示例講解
using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection String"].ConnectionString))
{
using (var ct = new CommittableTransaction())
{
conn.Open();
conn.EnlistTransaction(ct);//關聯事務
using (var 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();
}
參考:https://msdn.microsoft.com/zh-cn/library/ms172146(v=vs.90).aspx
最後更新:2017-04-03 20:19:55