狗尾草

导航

使用Transaction(事务)的全部流程

          在工程中我们经常使用事务将一批相关的数据库操作集中的进行处理,通过数据库的回发机制来保证数据库中的相关数据的完整性.下面就一个简单的例子 ,来全程的了解在程序如何使用事务.
 
  首先 我们要定义一个事务,
     SqlConnection conn=new SqlConnection("the string what can  link to database");
        SqlTransaction Tram=conn.BeginTransaction();
  
        其次  事务是连接的一部分 ,现在就要在事务中执行一些事务中的相关的数据库的操作拉 
  SqlCommand cmd =new SqlCommand("operate SQL Command",conn);
        cmd.Transaction= Tram;
       cmd.ExecuteNonQuery() ;
       在事务期间 ,以上的过程是可以多次重复的.在事务中的相关数据全部操作完成是通过
      Tram.Commit(); 来提交在整个事务中改动的相关的数据,-------注意在事务中间相关数据操作不要过多,处理的时间不要太长,数据  库      在处理事务的时候采用了--锁机制 来防止数据的不一致.
    如果在事务期间,在进行其中的某一项数据操作时候,出现的了异常,则可以通过
    Tram.Rollback();    来进行回滚事务的操作.(可以通过Try---Catch----Finally)来实现


 下一步 就上删除连接,并解析相关的ADO数据对象
       注意在 Tram.Rollback()和Tram.Commit();执行后Tram的相关的连接和其他的属性就设置为空拉 ,不能通过Transaction中的连接来注销SqlConnection .所以要在生成事务之前加一个引用,来注销连接.
   事务直接 按下面的方法就可以拉
   Tram.Dispose();
 下面是一个简单的例子的全部代码----

    SqlConnection conn=new SqlConnection();
            SqlTransaction Tram
=conn.BeginTransaction();
            
try
            
{
                SqlCommand cmd 
=new SqlCommand("",conn);
                cmd.Transaction 
=Tram;
                cmd.ExecuteNonQuery() ;
                .n;
                Tram.Commit();
            }

            
catch
            
{
                Tram.Rollback();
            }

            
finally
            
{
            Tram.Dispose();
            conn.Dispose();
            }

posted on 2006-04-11 17:13  狗尾草-大数据收割基  阅读(644)  评论(0)    收藏  举报