本文实例讲述了C#编程之事务用法。分享给大家供大家参考,具体如下:
ado.net2.0的SqlTransaction使用方法
/////ado.net1.0中使用Transacation(事务) string connectionString = "database=Northwind;pwd=admin;uid=sa;server=DATABASE-VPC\\SQL2005"; using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); SqlTransaction transaction = conn.BeginTransaction(); try { using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = conn; cmd.CommandType = CommandType.Text; cmd.CommandText = ""; cmd.Transaction = transaction; cmd.ExecuteNonQuery(); transaction.Commit();//提交事务 } } catch { transaction.Rollback();//事务回滚 } /////2.0中使用事务 string connectionString = "database=Northwind;pwd=admin;uid=sa;server=DATABASE-VPC\\SQL2005"; string connectionStringTwo = "database=Test;pwd=admin;uid=sa;server=DATABASE-VPC\\SQL2005"; using (TransactionScope transaction = new TransactionScope())//使用事务 { try { using (SqlConnection conn = new SqlConnection(connectionString)) { using (SqlCommand cmd = new SqlCommand()) { cmd.CommandText = "insert into [member] (name) values ('test')"; cmd.CommandType = CommandType.Text; cmd.Connection = conn; conn.Open(); cmd.ExecuteNonQuery(); } } using (SqlConnection conn = new SqlConnection(connectionStringTwo)) { using (SqlCommand cmd = new SqlCommand()) { cmd.CommandText = "insert into [member] (name) values ('test')"; cmd.CommandType = CommandType.Text; cmd.Connection = conn; conn.Open(); cmd.ExecuteNonQuery(); } } transaction.Complete();//就这句就可以了。 } catch (Exception ex) { MessageBox.Show(ex.Message); } }
ado.net1.0与ado.net2.0中对比
1.0中不能跨数据库,速度慢
2.0中可以跨数据库,2.0中不再使用com+,速度比1.0快50%(因为它不用把大量的时间消耗在查找在com+中)
2.0中的事务会自动判断使用何种事务(不用您考虑是简单事务还是分部式事务)。
2.0中的Transactions新添加了命名空间。没有com+注册和com+的开销。
希望本文所述对大家C#程序设计有所帮助。
9.3 编程式事务 9.3.1 编程式事务概述 所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理。 Spring框架提供一致的事务抽象,因此对于JDBC还是JTA事务都是采用相同的API进行编程。 Connection conn = null; UserTransaction tx = null; try { tx = getUserTransaction();
本文向大家介绍详解Spring学习之编程式事务管理,包括了详解Spring学习之编程式事务管理的使用技巧和注意事项,需要的朋友参考一下 前言 在前面的内容,基本已经学习了事务的基本概念以及事务隔离级别等,接下来的几个小节,将学习怎么使用Spring进行事务管理,在Spring中,对事务进行管理有多种方法,主要分别编程式和声明式,本小节主要学习编程式事务管理,后面讲学习Spring的声明式事务管理
本文向大家介绍c# 网络编程之http,包括了c# 网络编程之http的使用技巧和注意事项,需要的朋友参考一下 一、概述 本文目的是通过C#代码提供一个HTTP服务,正常情况下如果我们需要向外界提供HTTP服务,常规做法就是通过ASP.NET来实现,有时我们的应用程序或Windows服务需要向外提供一些简单的HTTP服务就可以自己实现,从而避免部署IIS增加系统复杂性。这里必须强调是一些简单的应用
本文向大家介绍c# 网络编程之tcp,包括了c# 网络编程之tcp的使用技巧和注意事项,需要的朋友参考一下 一、概述 UDP和TCP是网络通讯常用的两个传输协议,C#一般可以通过Socket来实现UDP和TCP通讯,由于.NET框架通过UdpClient、TcpListener 、TcpClient这几个类对Socket进行了封装,使其使用更加方便, 本文就通过这几个封装过的类讲解一下相关应用。
10.7. 编程式事务管理 Spring提供两种方式的编程式事务管理: 使用 TransactionTemplate 直接使用一个 PlatformTransactionManager 实现 如果你选择编程式事务管理,Spring小组推荐你采用第一种方法(即使用TransactionTemplate)。第二种方法类似使用JTA的UserTransaction API (除了异常处理简单点儿)。 1
本文向大家介绍C++ COM编程之QueryInterface函数(二),包括了C++ COM编程之QueryInterface函数(二)的使用技巧和注意事项,需要的朋友参考一下 前言 在COM编程——认识组件中也总结了,COM是一个说明如何建立可动态互变组件的规范,它提供了为保证能够互操作,客户和组件应遵循的一些标准。而在实现和使用QueryInterface时,就需要去遵守一些规则,只有遵守了
本文向大家介绍C++ COM编程之QueryInterface函数(一),包括了C++ COM编程之QueryInterface函数(一)的使用技巧和注意事项,需要的朋友参考一下 前言 组件对外公布的是接口;一个组件可以实现多个接口,也就是说可以对外公布多个接口,之前也总结过了,你很少会100%的去完全了解一个组件的所有接口,就像你去学习编程一样,你几乎不可能去成为编程中的全才。那么,既然我们不能
本文向大家介绍详解C#之事件,包括了详解C#之事件的使用技巧和注意事项,需要的朋友参考一下 事件:定义了事件成员的类允许通知其他其他对象发生了特定的事情。具体的说,定义了事件成员的类能提供以下功能 1.方法能登记它对事件的关注 2.方法能注销它对事件的关注 3.事件发生时,登记了的方法将收到通知 类型之所以能提供事件通知功能,是因为类型维护了一个已登记方法的列表。事件发生后,类型将通知列表中所有已