« 上一篇下一篇 »

事务处理的Transaction对象

在ADO.NET中,有两个实现事务的对象一个用于SQL Server(通过TDS)的SqlTransaction对象,另一个则是适用于OLE-DB提供者的OleDbTransaction对象。
网站建设的数据库技术ADO.NET中,有两个实现事务的对象,一个是用于SQL Server(通过TDS)的SqlTransaction对象,另一个则是适用于OLE-DB提供者的OleDbTransaction对象。调用当前Connection对象的BeginTransaction方法就可以开始一个事务,这个方法在连接上开始一个事务,在事务得到确认或回退前所有通过连接对数据所做的后续修改都是这个事务的一部分。它返回一个Transaction对象,必须将这个Transaction对象赋给所有被注册到这个事务中的Command对象。

为了结束一个事务并确认所有对数据库的修改,需要调用Transaction对象的Commit方法(注意它并不是Connection对象的方法),它是提交从当前事务开始起对数据所做的修改,并将修改该结果永久保存到目录数据存储中。调用Transaction对象的Roltback方法(这个方法是放弃从当前事务开始起对数据所做的所有修改,这些修改数据将从目标数据存储中删除)可以放弃对数据所做的所有修改。

注意,我们还必须手工将每个Command对象注册到这个事务中。虽然看起来有些啰嗦,但是它允许具有多个事务,并在对数据库执行每条命令的时候选择使用一个合适的事务。另外,还通过创建一个新的Transaction对象,并调用Begin方法还可以创建一个嵌套的事务(一个事务在另一个事务的内部执行)。

« 上一篇下一篇 »