数据库开发之【ASP.NET页面级别的事务】
2013-11-09 15:51
393 查看
.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
【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
相关文章推荐
- .NET开发中的事务处理大比拼 之 ASP.NET页面级别的事务
- .NET开发中的事务处理大比拼 之 ASP.NET页面级别的事务
- ASP.NET页面级别的事务
- 数据库开发之【ADO.NET级别事务】
- ASP.NET页面级别的事务
- Access (ASP.NET 开发知识)包括 (数据库连接知识 ) 和(socancode三层 使用的知识)
- 在ASP.NET 2.0中操作数据之六十一:在事务里对数据库修改进行封装
- ASP.NET 2.0轻松实现数据库应用开发
- ASP.NET 2.0 正式版中无刷新页面的开发
- [翻译]ASP.NET MVC 3 开发的20个秘诀(二十)[20 Recipes for Programming MVC 3]:缓存结果数据加速页面载入
- 黑马程序员_学习日记50_619数据库开发及ADO.Net(临时表、表变量、视图、变量、if…else…和while、事务、存储过程、触发器)
- ASP.NET 2.0 正式版中无刷新页面(客户端回调)的开发
- 如何用SQLDMO在ASP.NET页面下实现数据库的备份与恢复
- ASP.NET 2.0 正式版中无刷新页面的开发 提示
- 用SQLDMO在ASP.NET页面下实现数据库的备份与恢复
- ASP.NET 2.0 正式版中无刷新页面的开发(转)
- ASP.NET 4.0 与 Entity Framework 4-第一篇-采用Model-First 开发方式创建数据库
- mysql+asp.net开发注意大全:mysql创建数据库的时候,创建新用户,并且付给权限。mysql存储过程的编写,mysql数据库引擎的区别,mysql数据库文件夹备份
- ckeditor和ckfinder配合开发asp.net内容发布页面
- ASP.NET_4.0_与_Entity_Framework_4-第一篇-采用Model-First_开发方式创建数据库