本文所述为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();
}
}
}
本文地址:https://www.stayed.cn/item/11141
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我