使用 TransactionScope 对象创建事务
TransactionScope 类不属于ADO.NET事务,它属于System.Transaction 命名空间。
使用System.Transaction 命名空间的类在.NET 代码中创建事务,TransactionScope 类是最常用的一个。
它创建一个称为“本地轻量级事务”的标准事务,如果需要,该事务自动升级为完全分布式事务。
用法:
SqlConnectionString cn =
ConfigurationManager.ConnectionStrings["conn"];
using (TransactionScope ts = new TransactionScope())
{
using (SqlConnection conn = new SqlConnection(cn.ConnectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT * FROM employees";
cmd.ExecuteScalar();
}
ts.Complete();
}
}
设置事务选项
TransactionScope 类接受一个TransactionOptions 对象作为参数,该参数可以设置为 Required、RequiresNew、
Suppress 中的一个。TransactionOptions 对象的TimeOut 属性可以设置超时时间,还包含一个IsolationLevel 属
性用于设置事务孤立级别。
注:
TransactionOptions opt= new TransactionOptions();
opt.IsolationLevel = System.Transactions.IsolationLevel.Serializable;
TransactionScope ts = new TransactionScope(TransactionScopeOption.Required, opt);