1) SqlTransaction
A, 由数据连接启动事务
B,由事务对象创建保存点,回滚或者提交.
C, 事务回滚或提交后代表事务结束!
2) 事务的隔离机制:
A, IsolationLevel.ReadCommitted SQLSERVER的默认机制. 这种机制可以确保只有第一个事务完成后,第二个事务才会开始.
B, IsolationLevel.ReadUncommitted 即使第一事务没有完成,也允许另一个事务从数据库中读取数据.
C, IsolationLevel.RepeatableRead 是ReadCommitted的一种扩展. 如果在事务处理中使用了相同的语句,无论是否存在其他潜在的数据库更新,总是可以返回相同的数据.
D, IsolationLevel.Serializable 最高级的事务处理机制,不建议使用! 对数据可以进行串行化访问.
使用步骤
创建事务 SqlTransaction tran = conn.BeginTransaction();
关于事务的操作:
tran.Commit();//提交事务;
tran.Rollback();//回滚事务;
tran.Save(“保存点”);//创建保存点;
tran.Rollback(“保存点”);//回滚到某个保存点!
实例
//一个事务操作的例子:
//连接字符串
string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
//创建连接对象
SqlConnection conn = new SqlConnection(connStr);
//打开连接
conn.Open();
//开启事务
SqlTransaction tran = conn.BeginTransaction(IsolationLevel.ReadCommitted);
//T—SQL 语句
string sql = "update students set sal = 9999 where sno = 2007089";
//创建Commond对象
SqlCommand comm = new SqlCommand(sql,conn,tran);
if (comm.ExecuteNonQuery() > 0)
{
Response.Write("成功!");
//提交事务
tran.Commit();
}
else {
Response.Write("失败!");
//回滚事务
tran.Rollback();
}
//关闭连接
conn.Close();