用SqlTransaction,参考这个例子.public void RunSqlTransaction(string myConnString) { SqlConnection myConnection = new SqlConnection(myConnString); myConnection.Open(); SqlCommand myCommand = new SqlCommand(); SqlTransaction myTrans; // Start a local transaction myTrans = myConnection.BeginTransaction(); // Must assign both transaction object and connection // to Command object for a pending local transaction myCommand.Connection = myConnection; myCommand.Transaction = myTrans; try { myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"; myCommand.ExecuteNonQuery(); myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"; myCommand.ExecuteNonQuery(); myTrans.Commit(); Console.WriteLine("Both records are written to database."); } catch(Exception e) { myTrans.Rollback(); Console.WriteLine("Error: {1}", e.Message); Console.WriteLine("Error reported by {1}.", e.Source); Console.WriteLine("Neither record was written to database."); } finally { myConnection.Close(); } }ms-help://MS.MSDNVS.2052/cpref/html/frlrfSystemDataSqlClientSqlTransactionClassTopic.htm
我是这样做的!但我想知道事务处理的应用,所以我想用事务处理做!
{
SqlConnection myConnection = new SqlConnection(myConnString);
myConnection.Open(); SqlCommand myCommand = new SqlCommand();
SqlTransaction myTrans; // Start a local transaction
myTrans = myConnection.BeginTransaction();
// Must assign both transaction object and connection
// to Command object for a pending local transaction
myCommand.Connection = myConnection;
myCommand.Transaction = myTrans; try
{
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
myCommand.ExecuteNonQuery();
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
myCommand.ExecuteNonQuery();
myTrans.Commit();
Console.WriteLine("Both records are written to database.");
}
catch(Exception e)
{
myTrans.Rollback();
Console.WriteLine("Error: {1}", e.Message);
Console.WriteLine("Error reported by {1}.", e.Source);
Console.WriteLine("Neither record was written to database.");
}
finally
{
myConnection.Close();
}
}ms-help://MS.MSDNVS.2052/cpref/html/frlrfSystemDataSqlClientSqlTransactionClassTopic.htm