300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 事务处理笔记《一》ADO.NET级别的事务

事务处理笔记《一》ADO.NET级别的事务

时间:2022-12-27 04:44:24

相关推荐

事务处理笔记《一》ADO.NET级别的事务

现在我们对事务的概念和原理都有所了解了,并且作为已经有一些基础的C#开发者,我们已经熟知编写数据库交互程序的一些要点,即:

(1)使用SqlConnection类的对象的Open()方法建立与数据库服务器的连接。

(2)然后将该连接赋给SqlCommand对象的Connection属性。

(3)将欲执行的SQL语句赋给SqlCommand的CommandText属性。

(4)通过SqlCommand对象进行数据库操作。

创建一个事务是很简单的,需要定义一个SqlTransaction类型的对象。SqlConnection和OleDbConnection对象都有一个BeginTransaction方法,它可以返回SqlTransaction或者OleDbTransaction对象。然后赋给SqlCommand对象的Transcation属性,即实现了二者的关联。为了使事务处理可以成功完成,必须调用SqlTransaction对象的Commit()方法。如果有错误,则必须调用Rollback()方法撤销所有的操作。

事务处理程序的要点:

(1)创建事务

(2)事务与要处理的每条命令关联起来

(3)事务的提交与回滚

基于以上认识,下面我们就开始动手写一个基于的事务处理程序。

string conString = "data source=127.0.0.1;database=codematic;user id=sa;password=";SqlConnection myConnection = new SqlConnection(conString);myConnection.Open();//启动一个事务SqlTransaction myTrans = myConnection.BeginTransaction();//为事务创建一个命令SqlCommand myCommand = new SqlCommand();myCommand.Connection = myConnection;myCommand.Transaction = myTrans;try{mandText = "update P_Product set Name='电脑2' where Id=52";myCommand.ExecuteNonQuery();mandText = "update P_Product set Name='电脑3' where Id=53";myCommand.ExecuteNonQuery();mit();//提交Response.Write("两条数据更新成功");}catch (Exception ex){myTrans.Rollback();//遇到错误,回滚Response.Write(ex.ToString()); }finally{myConnection.Close();}

事务的优势和限制如下。

优势:

l简单。

l和数据库事务差不多快。

l事务可以跨越多个数据库访问。

l独立于数据库,不同数据库的专有代码被隐藏了。

限制:事务执行在数据库连接层上,所以需要在执行事务的过程中手动地维护一个连接。

选自《亮剑.NET. .NET深入体验与实战精要》一书 5.4 节。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。