.NET中事务操作小结(1)
2009-03-11 00:50
197 查看
在进行数据库操作的过程中,需要通过一种机制来保证数据的完整性,即称为事务
基本的事务必须从属4个特点ACID(Atomicity,Consistency,Isolation and Duiability),即原子性,一致性,独立性,持久性,总体特点说明如下:
Atomicity(原子性):在一个操作中涉及两个或两个以上独立的信息,这些信息要么全部提交,要么都不提交
Consistency(一致性):操作要么创建新的有效的数据状态,要么(如果发生错误下)将所又的数据返回到初始状态
Isolation(独立性):操作在没有提交并不与其他操作发生任何关系
Duiability(持久性):即使操作过程中发生了错误需要重新启动,保存的已经提交的数据在正确的状态下任然有效
。NET事务主体主要分成两种情况:手动事务和自动事务
。NET目前提供了三种事务机制:
(1)在SQL中使用事务
(2)在ADO.NET中使用事务
(3)分布式事务(Com+事务)—主要用于自动事务控制
A:在SQL中使用事务
关键字:Begin Trans,Commit Trans,RollBack Trans实现,这种方式最为简单
B:在ADO.NET中使用事务:
在ADO.net中主要通过Transaction对象来实现事务的基本处理。
SqlConnection和OledbConnection对象有一个BeginTransaction方法,该方法返回一个SqlTransaction或者OleDBTransaction对象,而这两个对象中Commit和RollBack方法来管理事务处理。很简便明了
其中在ADO.net主要特点是:
优点是:
(A)操作简单(主要是对象几个方法)和数据库事务差不多
(B)独立于数据库 不同数据库专有代码被隐藏了
缺点是:
(A)事务不能跨多个数据库连接(分布式事务可以跨多个数据库)
(B)事务执行必须依靠一个存在的数据库连接,从Transaction对象生成就可以看出通过SqlConnection或OleDBConnection对象获得。
(C)ADO.net中分布式事务可以跨多个数据库,如果其中一个是SQLServer数据库的话,通过SQLserver连接服务器连接别的数据库,但如果是DB2和Oracle之间就不行。如下实例代码:
分布式事务 在小结(2)重点讲详细讲解
基本的事务必须从属4个特点ACID(Atomicity,Consistency,Isolation and Duiability),即原子性,一致性,独立性,持久性,总体特点说明如下:
Atomicity(原子性):在一个操作中涉及两个或两个以上独立的信息,这些信息要么全部提交,要么都不提交
Consistency(一致性):操作要么创建新的有效的数据状态,要么(如果发生错误下)将所又的数据返回到初始状态
Isolation(独立性):操作在没有提交并不与其他操作发生任何关系
Duiability(持久性):即使操作过程中发生了错误需要重新启动,保存的已经提交的数据在正确的状态下任然有效
。NET事务主体主要分成两种情况:手动事务和自动事务
。NET目前提供了三种事务机制:
(1)在SQL中使用事务
(2)在ADO.NET中使用事务
(3)分布式事务(Com+事务)—主要用于自动事务控制
A:在SQL中使用事务
关键字:Begin Trans,Commit Trans,RollBack Trans实现,这种方式最为简单
--在SQL中使用事务 begin Trans declare @orderError int,@productError int delete from OrderList where id=45 select @orderError=@@Error delete from ProductList where id=44 select @productError=@@Error if(@orderError==0 and @productError==0) commit Trans else RollBack Trans //在SQL使用最为简单 不做过多介绍
B:在ADO.NET中使用事务:
在ADO.net中主要通过Transaction对象来实现事务的基本处理。
SqlConnection和OledbConnection对象有一个BeginTransaction方法,该方法返回一个SqlTransaction或者OleDBTransaction对象,而这两个对象中Commit和RollBack方法来管理事务处理。很简便明了
其中在ADO.net主要特点是:
优点是:
(A)操作简单(主要是对象几个方法)和数据库事务差不多
(B)独立于数据库 不同数据库专有代码被隐藏了
缺点是:
(A)事务不能跨多个数据库连接(分布式事务可以跨多个数据库)
(B)事务执行必须依靠一个存在的数据库连接,从Transaction对象生成就可以看出通过SqlConnection或OleDBConnection对象获得。
(C)ADO.net中分布式事务可以跨多个数据库,如果其中一个是SQLServer数据库的话,通过SQLserver连接服务器连接别的数据库,但如果是DB2和Oracle之间就不行。如下实例代码:
--在ADO.net中添加事务 --连接字符串已知conStr using(SqlConnenction getCon=new SqlConnection(conStr)) { //open Connection getCon.open(); //声明一个SqlTransaction SqlTransaction getTran=getCon.BeginTransaction(); SqlCommand getCmd=new SqlCommand(); getCmd.Connection=getCon; //定义命令操作事务 getCmd.Transaction=getTran; //通过一个Try-Catch try { //执行第一条SQL语句 getCmd.CommandText="insert into OrderList('德国柏林')"; getCmd.ExecuteNonQuery(); //执行第二条SQL语句 getCmd.CommandText="delete from OrderList where id=1425"; getCmd.ExecuteNonQuery(); //若没有异常提交事务 getTran.Commit(); }catch(Exception ce) { //出现异常 事务回滚 getTran.RollBack(); }finally { //关闭数据库连接 使用了Using快就不需要了 // getCom.close(); } }
分布式事务 在小结(2)重点讲详细讲解
相关文章推荐
- .NET中事务操作小结(1)
- .NET数据库操作的事务处理
- ADO.NET 对数据操作 以及如何通过C# 事务批量导入数据
- 嵌入式 sqlite3中事务操作小结
- 在三个层次对Asp.Net的数据操作进行事务
- asp.net 事务处理小结
- Asp.net操作Excel文件事例小结,基于ExtAspNet控件库
- net 操作XML小结
- ADO.NET 对数据操作 以及如何通过C# 事务批量导入数据
- 数据库操作事务小结
- ASP.NET对无序列表批量操作的三种方法小结
- ADO.Net 事务操作
- 关于c#.Net操作Access数据库的类,支持事务处理
- asp.net操作xml数据常用方法小结
- ADO.NET Entity Framework 学习初级篇7--基本操作:增加、更新、删除、事务
- net 操作XML小结
- asp.net操作xml小结
- .net操作XML小结
- ASP.NET生命周期与MapControl操作小结 Part1
- ADO.NET事务学习小结