`
ruilinruirui
  • 浏览: 1049386 次
文章分类
社区版块
存档分类
最新评论

.net中数据库事务机制

 
阅读更多

在初始化SqlTransaction类时,你需要使用SqlConnection类的BeginTranscation()方法:
SqlTransaction myTran; myTran=myConn.BeginTransaction();
该方法返回一个SqlTransaction类型的变量。在调用BeginTransaction()方法以后,所有基于该数据连接对象的SQL语句执行动作都将被认为是事务MyTran的一部分。同时,你也可以在该方法的参数中指定事务隔离级别和事务名称,如:
SqlTransaction myTran;
myTran=myConn.BeginTransaction(IsolationLevel.ReadCommitted,"SampleTransaction");

程序实例:

1. SQL SERVER

SqlConnection myConn=GetConn();
  myConn.Open();
  SqlCommand myComm=new SqlCommand();

  SqlTransaction myTran; //创建一个事务
  myTran=myConn.BeginTransaction(); //注意,SqlTransaction类无公开的构造函数

   //从此开始,基于该连接的数据操作都被认为是事务的一部分
   myComm.Connection=myConn;
   myComm.Transaction=myTran;
   myComm.CommandText="USE pubs";
   myComm.ExecuteNonQuery();
   myComm.CommandText="UPDATE roysched SET royalty = royalty * 1.10 WHERE title_id LIKE 'Pc%'";
   myComm.ExecuteNonQuery();

 myTran.Commit(); //提交事务

2.下面的示例创建一个 OracleConnection 和一个 OracleTransaction。它还演示了如何使用 BeginTransaction、Commit 和 Rollback 方法。

public void RunOracleTransaction(string myConnString)
{
OracleConnection myConnection = new OracleConnection(myConnString);
myConnection.Open();

OracleCommand myCommand = myConnection.CreateCommand();
OracleTransaction myTrans;

// Start a local transaction
myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted);
// Assign transaction object for a pending local transaction
myCommand.Transaction = myTrans;

try
{
myCommand.CommandText = "INSERT INTO Dept (DeptNo, Dname, Loc) values (50, 'TECHNOLOGY', 'DENVER')";
myCommand.ExecuteNonQuery();
myCommand.CommandType= CommandType.StoredProcedure;
myCommand.CommandText="prc_test";
myCommand.ExecuteNonQuery();
myTrans.Commit();
Console.WriteLine("Both records are written to database.");
}
catch(Exception e)
{
myTrans.Rollback();
Console.WriteLine(e.ToString());
Console.WriteLine("Neither record was written to database.");
}
finally
{
myConnection.Close();
}
}

分享到:
评论

相关推荐

    ASP.NET中的事务处理和异常处理

    本文详细介绍ASP.NET中的事务处理和异常... 使用SQL-Transaction类和.NET提供的异常处理机制,我们就能够以一种可靠的方式处理数据库运行中的问题和发现系统异常。这篇小文章将解释事务处理和异常处理的概念和用法。

    asp.net知识库

    改进ADO.Net数据库访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新数据库的类+总结 [ADO.NET]由数据库触发器引发的问题 为ASP.NET封装的SQL数据库访问类 DataTable.Select方法的性能问题 .NET 2.0里使用强...

    ASP.NET完全入门PDF

    第三篇ADO.NET数据库编程 第一章 ADO.NET简介i. ADO.NET的发展历史ii. ADO.NET框架模型 iii. ADO.NET对比ADO iv. 小结第二章 访问数据库i. 记录插入 ii. 记录修改iii. 记录删除第三章 存储过程和触发器 i. 使用存储...

    北京中科信软 Visual Basic.NET培训

    三 ADO.NET 数据库连接与连接池控制 执行数据操作命令 DataReader DataSet ADO.NET中的数据更新 多活动结果集 批量复制 ADO.NET中的异步处理 事务处理机制 LINQ 案例分析:采用N层架构和分布式的大型图书...

    ASP.NET的网页代码模型及生命周期

    代码分离有一种好处,就是在.aspx页面中,开发人员可以将页面直接作为样式来设计,即美工人员也可以设计.aspx页面,而.cs文件由程序员来完成事务处理。同时,将ASP.NET中的页面样式代码和逻辑处理代码分离能够让维护...

    asp.net 完全入门

    第三篇 ADO.NET数据库编程 第一章 ADO.NET简介 i. ADO.NET的发展历史 ii. ADO.NET框架模型 iii. ADO.NET对比ADO iv. 小结 第二章 访问数据库 i. 记录插入 ii. 记录修改 iii. 记录删除 第三章 存储...

    ASP.NET完全入门

    第三篇 ADO.NET数据库编程 第一章 ADO.NET简介 i. ADO.NET的发展历史 ii. ADO.NET框架模型 iii. ADO.NET对比ADO iv. 小结 第二章 访问数据库 i. 记录插入 ii. 记录修改 iii. 记录删除 第三章 存储过程和...

    亮剑.NET深入体验与实战精要2

    3.4 ASP.NET编程中的技巧 142 3.4.1 页面之间传值的7种方法 142 3.4.2 get与post方法的区别 146 3.4.3 ASP.NET服务器控件和 HTML控件的区别 146 3.4.4 Server.Transfer和Response.Redirect的区别 148 3.4.5 刷新...

    简单的ADO.net数据访问客户端

    .net对象的属性和公共字段使用Pascal命名法,但数据库规范中的字段命名法可能不一样,比如MySql的snake_case命名法;而且也有太多的数据库设计使用“意识流”了。为了解决这个命名差异问题,查询结果映射到非匿名...

    亮剑.NET深入体验与实战精要3

    3.4 ASP.NET编程中的技巧 142 3.4.1 页面之间传值的7种方法 142 3.4.2 get与post方法的区别 146 3.4.3 ASP.NET服务器控件和 HTML控件的区别 146 3.4.4 Server.Transfer和Response.Redirect的区别 148 3.4.5 刷新...

    asp.net技术内幕(1)

    9.3 改进数据库性能 9.3.1 使用SQL存储过程 9.3.2 获取返回值和输出参数 9.3.3 执行复杂的存储过程 9.3.4 用链接缓冲改进性能 9.4 高级的数据库主题 9.4.1 在事务中执行数据库命令 ...

    Visual.Basic.2010.&.NET4.高级编程(第6版)-文字版.pdf

    4.6.6 在asp.net中引用名称空间 241 4.7 创建自己的名称空间 241 4.8 my关键字 244 4.8.1 my.application名称空间 244 4.8.2 my.computer名称空间 248 4.8.3 my.forms名称空间 251 4.8.4 my.resources...

    ASP.net技术内幕

    9.3.1 使用SQL存储过程 9.3.2 获取返回值和输出参数 9.3.3 执行复杂的存储过程 9.3.4 用链接缓冲改进性能 9.4 高级的数据库主题 9.4.1 在事务中执行数据库命令 9.4.2 指定命令...

    图书管理系统-asp.net

    随着Internet技术的发展,互联网在中国逐步普及,人们对网络的需求也日益增长,利用计算机实现事务的管理势在必行。本系统从初步调查开始,详细介绍了需求分析、流程和数据分析,并进行了系统总体结构设计和数据库设计...

    分布式系统事务一致性解决方案大对比,谁最好使?

    我们通常只需借助开发平台中特有数据访问技术和框架(例如spring、JDBC、ADO.NET),结合关系型数据库自带的事务管理机制来实现事务性的需求。关系型数据库通常具有ACID特性:原子性(Atomicity)、一致性...

    ASP.NET4高级程序设计(第4版) 3/3

     《ASP.NET 4高级程序设计(第4版)》是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET4的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践中得出的建议。书中还深入讲述了其他ASP.NET图书...

Global site tag (gtag.js) - Google Analytics