欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#事务处理(Execute Transaction)实例解析

程序员文章站 2024-02-20 13:29:52
本文所述为c#事务处理(execute transaction)的一个实例,包含了创建sqltransaction 对象并用sqlconnection对象的begintra...

本文所述为c#事务处理(execute transaction)的一个实例,包含了创建sqltransaction 对象并用sqlconnection对象的begintransaction()方法开始事务,创建保存sql语句,将sqlcommand对象的commandtext属性设置为第一个insert语句,第一个insert语句在customers表中增加一行,提交事务,使insert语句增加的两行在数据库中保存起来。

具体的实例代码如下:

using system;
using system.data;
using system.data.sqlclient;
namespace executetransaction
{
 /// <summary>
 /// executetransaction 的摘要说明。
 /// </summary>
 public class executetransaction
 {
 public static void main()
 {
  sqlconnection mysqlconnection =
  new sqlconnection(
  "server=localhost;database=northwind;uid=sa;pwd=sa"
  );
  mysqlconnection.open();
  // 创建sqltransaction 对象并用sqlconnection对象的
  // begintransaction()方法开始事务
  sqltransaction mysqltransaction =
  mysqlconnection.begintransaction();
  // 创建保存sql语句
  sqlcommand mysqlcommand = mysqlconnection.createcommand();
  // 将transaction属性设置为上面所生成的sqltransaction对象
  mysqlcommand.transaction = mysqltransaction;
  // 将sqlcommand对象的commandtext属性设置为第一个insert语句,
  // 第一个insert语句在customers表中增加一行
  mysqlcommand.commandtext =
  "insert into customers (" +
  " customerid, companyname" +
  ") values (" +
  " 'micro', 'microsoft corporation'" +
  ")";
  // 执行第一个insert语句
  console.writeline("running first insert statement");
  mysqlcommand.executenonquery();
  // 将sqlcommand对象的commandtext属性设置为第二个insert语句,
  // 第二个insert语句在orders表中增加一行
  mysqlcommand.commandtext =
  "insert into orders (" +
  " customerid" +
  ") values (" +
  " 'micro'" +
  ")";
  // 执行第二个insert语句
  console.writeline("running second insert statement");
  mysqlcommand.executenonquery();
  // 提交事务,使insert语句增加的两行在数据库中保存起来
  console.writeline("committing transaction");
  mysqltransaction.commit();
  mysqlconnection.close();
 }
 }
}