TransactionScope类

.net2.0里提供的这个类在某些方面大大减少了事务处理的代码量。
TransactionScope
类可以用来标志一段代码参与一个事务,它不要求使用者与事务直接接触。 TransactionScope 类可以自动管理周边的事务。看看MSN里的这段代码。
using  (TransactionScope ts  =   new  TransactionScope())
{
    
// Create and open the SQL connection.  The work done on this connection will be a part of the transaction created by the TransactionScope
    SqlConnection myConnection  =   new  SqlConnection( " server=(local)\\SQLExpress;Integrated Security=SSPI;database=northwind " );
    SqlCommand myCommand 
=   new  SqlCommand();
    myConnection.Open();
    myCommand.Connection 
=  myConnection;

    
// Restore database to near it's original condition so sample will work correctly.
    myCommand.CommandText  =   " DELETE FROM Region WHERE (RegionID = 100) OR (RegionID = 101) " ;
    myCommand.ExecuteNonQuery();

    
// Insert the first record.
    myCommand.CommandText  =   " Insert into Region (RegionID, RegionDescription) VALUES (100, 'MidWestern') " ;
    myCommand.ExecuteNonQuery();

    
// Insert the second record.
    myCommand.CommandText  =   " Insert into Region (RegionID, RegionDescription) VALUES (101, 'MidEastern') " ;
    myCommand.ExecuteNonQuery();

    myConnection.Close();

                    
// Call complete on the TransactionScope or not based on input
    ConsoleKeyInfo c;
    
while  ( true )
    {
                            Console.Write(
" Complete the transaction scope? [Y|N]  " );
        c 
=  Console.ReadKey();
        Console.WriteLine();

        
if  ((c.KeyChar  ==   ' Y ' ||  (c.KeyChar  ==   ' y ' ))
        {
            
//  Commit the transaction
            ts.Complete();
            
break ;
        }
        
else   if  ((c.KeyChar  ==   ' N ' ||  (c.KeyChar  ==   ' n ' ))
        {
            
break ;
        }
    }
用起来好方便。

你可能感兴趣的:(transaction)