TransactionScope使用方法
来源:互联网 发布:android存储数据的方式 编辑:程序博客网 时间:2024/06/04 17:49
所在版本:.NET Framework 4.5
支持版本:.NET Framework
受以下版本支持:4.5、4、3.5、3.0、2.0
.NET Framework Client Profile
受以下版本支持:4、3.5 SP1
命名空间: System.Transactions
程序集: System.Transactions(在 System.Transactions.dll 中)
public sealed class TransactionScope : IDisposable
事例:
// This function takes arguments for 2 connection strings and commands to create a transaction // involving two SQL Servers. It returns a value > 0 if the transaction is committed, 0 if the // transaction is rolled back. To test this code, you can connect to two different databases // on the same server by altering the connection string, or to another 3rd party RDBMS by // altering the code in the connection2 code block.static public int CreateTransactionScope( string connectString1, string connectString2, string commandText1, string commandText2){ // Initialize the return value to zero and create a StringWriter to display results. int returnValue = 0; System.IO.StringWriter writer = new System.IO.StringWriter(); try { // Create the TransactionScope to execute the commands, guaranteeing // that both commands can commit or roll back as a single unit of work. using (TransactionScope scope = new TransactionScope()) { using (SqlConnection connection1 = new SqlConnection(connectString1)) { // Opening the connection automatically enlists it in the // TransactionScope as a lightweight transaction. connection1.Open(); // Create the SqlCommand object and execute the first command. SqlCommand command1 = new SqlCommand(commandText1, connection1); returnValue = command1.ExecuteNonQuery(); writer.WriteLine("Rows to be affected by command1: {0}", returnValue); // If you get here, this means that command1 succeeded. By nesting // the using block for connection2 inside that of connection1, you // conserve server and network resources as connection2 is opened // only when there is a chance that the transaction can commit. using (SqlConnection connection2 = new SqlConnection(connectString2)) { // The transaction is escalated to a full distributed // transaction when connection2 is opened. connection2.Open(); // Execute the second command in the second database. returnValue = 0; SqlCommand command2 = new SqlCommand(commandText2, connection2); returnValue = command2.ExecuteNonQuery(); writer.WriteLine("Rows to be affected by command2: {0}", returnValue); } } // The Complete method commits the transaction. If an exception has been thrown, // Complete is not called and the transaction is rolled back. scope.Complete(); } } catch (TransactionAbortedException ex) { writer.WriteLine("TransactionAbortedException Message: {0}", ex.Message); } catch (ApplicationException ex) { writer.WriteLine("ApplicationException Message: {0}", ex.Message); } // Display messages. Console.WriteLine(writer.ToString()); return returnValue;}
0 0
- TransactionScope使用方法
- C#中TransactionScope的使用方法
- C#中TransactionScope的使用方法和原理
- C#中TransactionScope的使用方法和原理
- C#中回滚TransactionScope的使用方法和原理
- TransactionScope
- TransactionScope
- TransactionScope
- TransactionScope
- TransactionScope
- TransactionScope
- TransactionScope
- TransactionScope
- TransactionScope
- transactionscope
- TransactionScope
- Sql Server数据库事务介绍(二)---Sql语句,SqlTransaction和TransactionScope的使用方法
- Sql Server数据库事务介绍(二)---Sql语句,SqlTransaction和TransactionScope的使用方法 (转载)
- eXtremeDB打开连接问题
- SQL Server 数据库安全
- 1读取、添加联系人
- 2015阿里秋招其中一个算法题(经典)
- HDU1.2.6解题报告
- TransactionScope使用方法
- hdu 5187(快速幂)
- C语言 变量的声明
- 桶排序问题
- 第二周 项目三 时间类(一)
- hdu 5188 zhx and contest ( 有限制的0/1背包)
- SQL Server 开发指南
- VS2012 webservice的创建并在iis上发布,发布完后解决“测试窗体只能用于来自本地计算机的请求.”问题视频教程
- 使用literalify库