本文所述為C#事務(wù)處理(Execute Transaction)的一個(gè)實(shí)例,包含了創(chuàng)建SqlTransaction 對(duì)象并用SqlConnection對(duì)象的BeginTransaction()方法開(kāi)始事務(wù),創(chuàng)建保存SQL語(yǔ)句,將SqlCommand對(duì)象的CommandText屬性設(shè)置為第一個(gè)INSERT語(yǔ)句,第一個(gè)INSERT語(yǔ)句在Customers表中增加一行,提交事務(wù),使INSERT語(yǔ)句增加的兩行在數(shù)據(jù)庫(kù)中保存起來(lái)。
具體的實(shí)例代碼如下:
using System;using System.Data;using System.Data.SqlClient;namespace ExecuteTransaction{ /// <summary> /// ExecuteTransaction 的摘要說(shuō)明。 /// </summary> public class ExecuteTransaction { public static void Main() { SqlConnection mySqlConnection = new SqlConnection( "server=localhost;database=Northwind;uid=sa;pwd=sa" ); mySqlConnection.Open(); // 創(chuàng)建SqlTransaction 對(duì)象并用SqlConnection對(duì)象的 // BeginTransaction()方法開(kāi)始事務(wù) SqlTransaction mySqlTransaction = mySqlConnection.BeginTransaction(); // 創(chuàng)建保存SQL語(yǔ)句 SqlCommand mySqlCommand = mySqlConnection.CreateCommand(); // 將Transaction屬性設(shè)置為上面所生成的SqlTransaction對(duì)象 mySqlCommand.Transaction = mySqlTransaction; // 將SqlCommand對(duì)象的CommandText屬性設(shè)置為第一個(gè)INSERT語(yǔ)句, // 第一個(gè)INSERT語(yǔ)句在Customers表中增加一行 mySqlCommand.CommandText = "INSERT INTO Customers (" + " CustomerID, CompanyName" + ") VALUES (" + " 'Micro', 'Microsoft Corporation'" + ")"; // 執(zhí)行第一個(gè)INSERT語(yǔ)句 Console.WriteLine("Running first INSERT statement"); mySqlCommand.ExecuteNonQuery(); // 將SqlCommand對(duì)象的CommandText屬性設(shè)置為第二個(gè)INSERT語(yǔ)句, // 第二個(gè)INSERT語(yǔ)句在Orders表中增加一行 mySqlCommand.CommandText = "INSERT INTO Orders (" + " CustomerID" + ") VALUES (" + " 'Micro'" + ")"; // 執(zhí)行第二個(gè)INSERT語(yǔ)句 Console.WriteLine("Running second INSERT statement"); mySqlCommand.ExecuteNonQuery(); // 提交事務(wù),使INSERT語(yǔ)句增加的兩行在數(shù)據(jù)庫(kù)中保存起來(lái) Console.WriteLine("Committing transaction"); mySqlTransaction.Commit(); mySqlConnection.Close(); } }}新聞熱點(diǎn)
疑難解答
圖片精選