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(); } } }