ASP.NET里的事务处理

原创 2004年11月04日 13:39:00
事务是一组组合成逻辑工作单元的数据库操作,虽然系统中可能会出错,但事务将控制和维护每个数据库的一致性和完整性。如果在事务过程中没有遇到错误,事务中的所有修改都将永久成为数据库的一部分。如果遇到错误,则不会对数据库作出任何修改。

  例如,在一个银行应用程序中,如果资金从一个帐户转到另一个帐户,则会将一定的金额记入一个帐户的贷方,同时将相同的金额记入另一个帐户的借方。由于计算机可能会因为停电、网络中断等原因而出现故障,所以有可能更新了一个表中的行,但没有更新相关表中的行。如果数据库支持事务,则可以将数据库操作组成一个事务,以防止因这些事件而使数据库出现不一致。

  在 ADO.NET 中,可以使用 Connection 和 Transaction 对象来控制事务。若要执行事务,请执行下列操作:

  调用 Connection 对象的 BeginTransaction 方法来标记事务的开始。BeginTransaction 返回对 Transaction 的引用。请保留此引用,以便将其分配给在事务中登记的 Command。

  将 Transaction 对象分配给要执行的 Command 的 Transaction 属性。如果通过活动的 Transaction 对象对 Connection 执行 Command,但该 Transaction 对象尚未分配给 Command 的 Transaction 属性,则将引发异常。

  执行所需的命令。

  调用 Transaction 对象的 Commit 方法来完成事务,或调用 Rollback 方法来取消事务。

  以下代码示例使用 Microsoft? SQL Server? 上的 ADO.NET 来演示事务逻辑。

SqlConnection myConnection = new SqlConnection("Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;");
myConnection.Open();
// 启动一个事务
SqlTransaction myTrans = myConnection.BeginTransaction();

// 为事务创建一个命令
SqlCommand myCommand = new SqlCommand();
myCommand.Connection=myConnection;
myCommand.Transaction = myTrans;
try
{
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, "Description")";
myCommand.ExecuteNonQuery();
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, "Description")";
myCommand.ExecuteNonQuery();
myTrans.Commit();
Console.WriteLine("Both records are written to database.");
}
catch(Exception e)
{
myTrans.Rollback();
Console.WriteLine(e.ToString());
Console.WriteLine("Neither record was written to database.");
}
finally
{
myConnection.Close();
}

ASP.NET里的事务处理

 事务是一组组合成逻辑工作单元的数据库操作,虽然系统中可能会出错,但事务将控制和维护每个数据库的一致性和完整性。如果在事务过程中没有遇到错误,事务中的所有修改都将永久成为数据库的一部分。如果遇到错误,...
  • zydmango
  • zydmango
  • 2006年09月20日 21:06
  • 487

ASP.NET里的事务处理

事务处理是由以一个单一的逻辑单位完成的一系列操作,它可以由一系列的SQL语句、SELECT、INSERT、UPDATE、DELETE组成,如果在该单位包含的操作执行完毕后没有发生错误,那么它对数据库所...
  • xiaoxiaohai123
  • xiaoxiaohai123
  • 2007年03月21日 10:51
  • 599

ASP.NET里的事务处理- -

       事务处理是由以一个单一的逻辑单位完成的一系列操作,它可以由一系列的SQL语句、SELECT、INSERT、UPDATE、DELETE组成,如果在该单位包含的操作执行完毕后没有发生错误,那...
  • wszhoho
  • wszhoho
  • 2007年03月16日 09:28
  • 788

Asp.net三种事务处理

事务处理是在数据处理时经常遇到的问题,经常用到的方法有以下三种总结整理如下: 方法1:直接写入到sql 中 在存储过程中使用 BEGIN TRANS, COMMIT TRANS, ROLLBA...
  • jiangfei009003
  • jiangfei009003
  • 2014年11月05日 15:32
  • 1597

.NET开发中的事务处理大比拼 之 ASP.NET页面级别的事务

ASP.NET事务可以说是在.NET平台上事务实现方式最简单的一种,你仅仅需要一行代码即可。在aspx的页面声明中加一个额外的属性,即事务属性Transaction="Required",它有如下的值...
  • sven_xu
  • sven_xu
  • 2015年06月02日 09:12
  • 973

[引]ASP.NET 中 事务处理(SqlTransaction)示例

下面的示例创建一个 SqlConnection 和一个 SqlTransaction。此示例还演示如何使用 BeginTransaction、Commit 和 Rollback 等方法。出现任何错...
  • freeliver54
  • freeliver54
  • 2007年03月02日 15:02
  • 260

ASP.NET事务处理

事务处理简介 1.1什么是事务处理 事务是一组组合成逻辑工作单元的数据库操作,虽然系统中可能会出错,但事务将控制和维护每个数据库的一致性和完整性。 如果在事务过程中没有遇到错误,事物中的所有修改...
  • jpzy520
  • jpzy520
  • 2015年01月25日 22:40
  • 1638

Asp.net中的事务处理(sql)

using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security...
  • sufei1013
  • sufei1013
  • 2008年05月23日 12:54
  • 561

ASP.NET里的事务处理(ado.net 数据库应用)

事务是一组组合成逻辑工作单元的数据库操作,虽然系统中可能会出错,但事务将控制和维护每个数据库的一致性和完整性。如果在事务过程中没有遇到错误,事务中的所有修改都将永久成为数据库的一部分。如果遇到错误,则...
  • feng2375
  • feng2375
  • 2008年04月11日 16:51
  • 374

ASP.NET里的事务处理(ado.net 数据库应用)

事务是一组组合成逻辑工作单元的数据库操作,虽然系统中可能会出错,但事务将控制和维护每个数据库的一致性和完整性。如果在事务过程中没有遇到错误,事务中的所有修改都将永久成为数据库的一部分。如果遇到错误,则...
  • Dictionarydxn
  • Dictionarydxn
  • 2008年01月03日 16:20
  • 588
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET里的事务处理
举报原因:
原因补充:

(最多只允许输入30个字)