您的位置:首页>>基础知识>>入门知识

.net中交易处理的解决方案

 
.net中交易处理的解决方案
  在数据库软件中,其核心就是对数据库记录进行查询添加修改及删除操作,这是非常关键的也是必须非常谨慎的去完成。在现有的程序中经常会有因为某些错误而造成数据丢失甚至是系统崩溃,这就对我们的程序提出了一个数据操作的错误处理要求。     例如在进行银行转帐处理时,我们先从转出帐号减掉要转出的金额,然后再在接收的帐号上加上相应的金额。如果一切处理OK,我们的钱能顺利到达接收帐号。但要是系统在执行接收金额的步骤上出错了,那么不但自已钱变少了,该收到的人也没有收到,那笔钱就这样消失了.这是一个很危险的现像。解决办法就是要对数据操作的每一步都进行错误监控,一旦发现出错了,马上恢复数据至整个操作前的原始状态。.NET中提出了一个交易(Transaction)的观念,可以解决此类问题。    我现在来用交易实现上面的例子:    string sql1 = "...";  //在转出帐号上减去金额的处理SQL语句  string sql2 = "...";  //在接收帐号上加上金额的处理SQL语句  SqlConnection conn = new SqlConnection("...");  //建立数据库连接  conn.Open();  //接开数据库连接  SqlTransaction tran = conn.BeginTransaction();  //开始进行交易处理  SqlCommand comm = new SqlCommand();  comm.Connection = conn;  comm.Transaction = tran;  try  {  comm.CommandText = sql1;  comm.ExecuteNonQuery();  comm.CommandText = sql2;  comm.ExecuteNonQuery();  tran.Commit();  //接受交易,完成操作  }catch  {  tran.Rollback();  //交易失败,恢复数据  }  finally  {  conn.Close();  //关闭数据库连接。  }    其实还有另外一种方法也可以实现以上目标。在transaction-sql中也提供了交易处理的方法(我想上种方法最终实现还是转换为此方法实现的).我们可以把以上处理建立为一个存储过程,然后再用SqlCommand进行调用,这个存储过程的主要的相关内容为(其中...处代表要进行数据库记录操作的多条SQL语句):    BEGIN TRANSACTION  ...  IF (@@ERROR > 0) ROLLBACK TRANSACTION  ELSE COMMIT TRANSACTION 更多文章 更多内容请看.NET开发手册.NET移动与嵌入式技术大型实用解决方案专题专题,或
上一篇文章: 值得珍藏的记忆:微软MSN的发展时间线
下一篇文章: 使用.NET开发Office2003解决方案
查看.net中交易处理的解决方案全部内容

查看上一页  返回分类首页 返回96PC首页  查看下一页

  版权所有:电脑知识大全 网站备案:粤ICP备07031496号  联系我们

友情链接:母婴知识  外贸商务网  娱乐频道  汽车维修知识  股票入门知识  游戏攻略秘籍  本站空间由安信网络提供