C#事务处理(Execute Transaction)实例解析
本文所述为C#事务处理(ExecuteTransaction)的一个实例,包含了创建SqlTransaction对象并用SqlConnection对象的BeginTransaction()方法开始事务,创建保存SQL语句,将SqlCommand对象的CommandText属性设置为第一个INSERT语句,第一个INSERT语句在Customers表中增加一行,提交事务,使INSERT语句增加的两行在数据库中保存起来。
具体的实例代码如下:
usingSystem;
usingSystem.Data;
usingSystem.Data.SqlClient;
namespaceExecuteTransaction
{
///<summary>
///ExecuteTransaction的摘要说明。
///</summary>
publicclassExecuteTransaction
{
publicstaticvoidMain()
{
SqlConnectionmySqlConnection=
newSqlConnection(
"server=localhost;database=Northwind;uid=sa;pwd=sa"
);
mySqlConnection.Open();
//创建SqlTransaction对象并用SqlConnection对象的
//BeginTransaction()方法开始事务
SqlTransactionmySqlTransaction=
mySqlConnection.BeginTransaction();
//创建保存SQL语句
SqlCommandmySqlCommand=mySqlConnection.CreateCommand();
//将Transaction属性设置为上面所生成的SqlTransaction对象
mySqlCommand.Transaction=mySqlTransaction;
//将SqlCommand对象的CommandText属性设置为第一个INSERT语句,
//第一个INSERT语句在Customers表中增加一行
mySqlCommand.CommandText=
"INSERTINTOCustomers("+
"CustomerID,CompanyName"+
")VALUES("+
"'Micro','MicrosoftCorporation'"+
")";
//执行第一个INSERT语句
Console.WriteLine("RunningfirstINSERTstatement");
mySqlCommand.ExecuteNonQuery();
//将SqlCommand对象的CommandText属性设置为第二个INSERT语句,
//第二个INSERT语句在Orders表中增加一行
mySqlCommand.CommandText=
"INSERTINTOOrders("+
"CustomerID"+
")VALUES("+
"'Micro'"+
")";
//执行第二个INSERT语句
Console.WriteLine("RunningsecondINSERTstatement");
mySqlCommand.ExecuteNonQuery();
//提交事务,使INSERT语句增加的两行在数据库中保存起来
Console.WriteLine("Committingtransaction");
mySqlTransaction.Commit();
mySqlConnection.Close();
}
}
}