数据库开发之【ASP.NET页面级别的事务】

.NET开发常用的事务机制有以下几种:

【1】SQL和存储过程级别的事务;

【2】ADO.NET级别的事务;

【3】ASP.NET页面级别的事务;【本博客将介绍】

【4】企业级服务COM+事务;

【5】System.Transactions事务处理。

本章节将介绍ASP.NET页面级别的事务实现过程:

(1)在ASP.NET页面声明中添加一个额外的属性,如:

<%@ Page Transaction="Required"  Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="WebApplication4.WebForm3" %> 

(2)后台页面引用:using System.EnterpriseServices;

(3)然后在后台代码中添加 提交事务 和 撤销事务 操作。

         try
            {
                //数据库操作方法,略                

                ContextUtil.SetComplete();//提交事务
            }
            catch (System.Exception except)
            {
                ContextUtil.SetAbort();//撤销事务
                Response.Write(except.Message);
            }

++++++++++++++++++++++++++++++++++++++++++++++++++++++

           华丽丽的分割线【实例演示】

----------------------------------------------------------------------------------------------

在前端页面添加事务属性:

<%@ Page Transaction="Required"  Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="WebApplication4.WebForm3" %> 

引入命名空间:using System.EnterpriseServices;

public partial class WebForm3 : System.Web.UI.Page
    {

        // 5.4.3  Asp.Net页面级别的事务

        protected void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                SQLWork1();//数据库操作1
                SQLWork2();//数据库操作2
                ContextUtil.SetComplete();//提交事务
            }
            catch (System.Exception except)
            {
                ContextUtil.SetAbort();//撤销事务
                Response.Write(except.Message);
            }
        }
        private void SQLWork1()
        {
            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();
            myConnection.Close();

        }

        private void SQLWork2()
        {
            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();
        }

     }

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 PS: ASP.NET页面级别的事务属性Transaction的属性值:Disabled(默认)、NotSupported、Supported、Required和RequiresNew

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值