你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Linux开发
也谈 .NET2.0中避免分布式事务(5)
 
下面是使用事务的输出。

  打开数据库连接;

  执行 Sql 语句。 

  关闭数据库连接->该方法由 Scope中的Dispose()方法调用

  *********************下面是 未 使用事务的输出

  打开数据库连接;

  执行 Sql 语句。

  未使用事务

  关闭数据库连接;

  打开数据库连接;

  执行 Sql 语句。

  未使用事务

  关闭数据库连接;

  输出结果和想像中的完全一样 数据库也正确(没任何原因不正确!)

  最后 改变一下方法:

/**//// <summary>
/// 使用事务
/// </summary>
public void TestACT()
{
 DataAccessTest dac = new DataAccessTest();
 using (Scope scope = new Scope(dac))
 {
  string strSql1 = "INSERT INTO [tilva20].[dbo].[T_Test]([TestName])VALUES('a')";
  string strSql2 = "INSERT INTO   [tilva20].[dbo].[T_Test]([TestName])VALUES('b222222222
22222222222222222222222222222222222222222222222222222222222222222222222222222')";
  dac.ExecuteSql(strSql1);
  dac.ExecuteSql(strSql2);
  scope.Complete();
 }
}

  熟悉数据库的肯定知道 “将截断字符串或二进制数据”吧!

  输出结果为:

  下面是使用事务的输出。

  打开数据库连接;

  执行 Sql 语句。

  关闭数据库连接->该方法由 Scope中的Dispose()方法调用

  出现了异常?

  数据库一条记录没有增加 数据库连接已经关闭 测试结果完全满意!

  对自己访问层稍做修改:

  最终的代码为:

public int UpdateTest(OutSourcing outSourcing, BusinessAccept businessAccept)
{
 IDataAccess dac = DataAccess.Create();
 DAHelper myHelper = new DAHelper(dac);
 using (Scope ts=new Scope())
 {
  myHelper.Update(outSourcing);
  myHelper.Update(businessAccept);
  ts.Complete();
 }
}

(编辑:aniston)

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089