原文地址:http://www.dingos.cn/index.php?topic=1288.0
事务处理是一组数据操作,这些操作要么必须全部成功,要么必须全部失败,以保证数据的一致性和完整性
已成功地完成对一个表的操作,但是关系表尚未更新,因此,数据会出现不一致的现象
确保:成功地进行整个操作或者取消整个操作
【事务处理命令】
已成功地完成对一个表的操作,但是关系表尚未更新,因此,数据会出现不一致的现象
确保:成功地进行整个操作或者取消整个操作
【事务处理命令】
- Begin: 在执行事务处理中的任何操作之前,必须使用 Begin 命令来开始事务处理
- Commit: 在成功将所有修改都存储于数据库时,才算是提交了事务处理
- Rollback: 由于在事务处理期间某个操作失败,而取消事务处理已做的所有修改,这时将发生回滚
【ADO.NET事务处理步骤】
- 创建数据库连接并用Open()方法打开连接;
SqlConnection objSqlConnection =
new SqlConnection("server=SQLDB; uid=sa; pwd=password; database=pubs");
objSqlConnection.Open(); - 使用Connection对象的BeginTransaction()方法开始事务处理,该方法将创建一个事务处理对象。
SqlTransaction objSqlTransaction = objSqlConnection.BeginTransaction(); - 将Command对象的Transaction属性设置为创建的事务处理对象。
objSqlCommand.Transaction = objSqlTransaction; - 用Command对象执行SQL命令;
insertCommand = "Insert into userlogin values ("g", "g");
objSqlCommand.CommandText = insertCommand;
objSqlCommand.ExecuteNonQuery (); - 如果操作过程没有错误,则提交事务处理。如果操作过程中发生错误,则回滚以完成的所有修改;
objSqlTransaction.Commit(); //执行成功时提交数据库
objSqlTransaction.Rollback(); //执行失败时回滚数据库 - 关闭连接:
objSqlConnection.Close();