码迷,mamicode.com
首页 > Web开发 > 详细

asp.net 事物处理

时间:2016-05-22 19:54:41      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:

      第一次写博客,因为只是小白,所以现在只是把博客做为一个笔记本以加深印象和以后方便查找。

  今天因为需要必须使用这种事物,也就是在同一个方法中对数据库进行多次操作,并且不能放在一个存储工程进行一次执行。在网上查到了这个方法,很汗颜的是我只用这个方式实现了我的目的,具体原理还是不清楚。哈哈,总之会用了。使用这种事物的时候要注意几个地方:

  1.必须引用命名空间System.EnterpriseServices
  2.ContextUtil.SetComplete();//提交事务
  3.ContextUtil.SetAbort();//回滚事务
  4.ServiceDomain.Leave();  

    前边说了,这个事物我只局限于达到了我的目的。所以提交和回滚两个方法很容易理解,我没有注意到ServiceDomain.Leave(),不知道起什么作用。我以为已经实现了回滚,正高兴的时候,在查询的时候linq报错了。经过查看发现,数据根本没有存储到数据库。当把ServiceDomain.Leave()添加上后才正真的实现了我的目的。

using System.EnterpriseServices;   

private void GetImport(HttpContext context)
{
ServiceConfig config = new ServiceConfig();
config.Transaction = TransactionOption.Required;
ServiceDomain.Enter(config);
string resultJson = "";
try
{
string sql1="insert into testTable1(name,sex,age) value(‘张三‘,‘男‘,23)";
SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(),CommandType.Text,sql1);

string sql2="insert into testTable2(company,name,tell) value(‘阿里巴巴‘,‘马云‘,‘13266666666‘)";
SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(),CommandType.Text,sql2);

string sql3="insert into testTable3(project,adress,tell) value(‘xx项目‘,‘重庆,‘15988888888‘)";
SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(),CommandType.Text,sql3);

resultJson="添加成功!";
ContextUtil.SetComplete();//提交事务
}
catch (Exception e)
{
resultJson = e.Message;
ContextUtil.SetAbort();//回滚事务
}
finally
{
ServiceDomain.Leave();
}
context.Response.Write(resultJson);
}

 

asp.net 事物处理

标签:

原文地址:http://www.cnblogs.com/chen0901/p/5517335.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!