ASP.NET页面级别的事务

 ASP.NET 事务可以说是在.NET 平台上事务实现方式最简单的一种,你仅仅需要一行代
码即可。在 aspx 的页面声明中加一个额外的属性,即事务属性 Transaction="Required",
它有如下的值:Disabled(默认)、NotSupported、Supported、Required 和 RequiresNew,这
些设置和COM+及企业级服务中的设置一样, 典型的一个例子是如果你想在页面上下文中运
行事务,那么要将其设置为Required。如果页面中包含有用户控件,那么这些控件也会包含
到事务中,事务会存在于页面的每个地方。

页面声明Transaction="Required":
<%@  Page  Transaction="Required"    Language="C#"  AutoEventWireup="true" 
 CodeBehind="WebForm3.aspx.cs"  Inherits="WebApplication4.WebForm3"  %>
页面引用:using System.EnterpriseServices;。
然后,数据操作代码:
protected  void  Button1_Click(object  sender,  EventArgs  e)
{
        try
        {
               Work1();
               Work2();

              ContextUtil.SetComplete();  //提交事务
        }
        catch  (System.Exception  except)
        {
              ContextUtil.SetAbort();    //撤销事务
               Response.Write(except.Message);
        }  
}   
private  void  Work1()
{
        string  conString  =  "data  source=127.0.0.1;database=codematic;user  id=sa;
   password=";
        SqlConnection  myConnection  =  new  SqlConnection(conString);
        string  strSql  =  "Insert  Into  P_Category(CategoryId,Name)values('1',
   'test1')";
        SqlCommand  myCommand  =  new  SqlCommand(strSql,  myConnection);
        myConnection.Open();
        int  rows  =  myCommand.ExecuteNonQuery();

        int  rows  =  myCommand.ExecuteNonQuery();
        myConnection.Close();
}
private  void  Work2()
{
        string  conString  =  "data  source=127.0.0.1;database=codematic;user  id=sa;
   password=";
        SqlConnection  myConnection  =  new  SqlConnection(conString);
        string  strSql  =  "Insert  Into  P_Category(CategoryId,Name)values('2',
   'test2')";
        SqlCommand  myCommand  =  new  SqlCommand(strSql,  myConnection);
        myConnection.Open();
        int  rows  =  myCommand.ExecuteNonQuery();
        myConnection.Close();

}

 

ContextUtil是用于获取  COM+ 上下文信息的首选类。由于此类的成员全部为 static,因
此在使用其成员之前不需要对此类进行实例化。
ASP.NET页面事务的优势和限制如下。
l  优势:实现简单,不需要额外的编码。
l  限制:页面的所有代码都是同一个事务,这样的事务可能会很大,而也许我们需要
的是分开的、小的事务实现在Web 层。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值