这个程序完成一个事务
public void RunSqlTrans(ArrayList arrlist)
   {
        Conn_open();
        Comm=new SqlCommand();
Comm.Transaction=sqlTra;
        sqlTra=Conn.BeginTransaction ();
try 
{
   for(int i=0;i<arrlist.Count ;i++)
           {
    Comm.CommandText=arrlist[i].ToString();
    Comm.Connection=Conn;
    sqlTra=Conn.BeginTransaction ();
    Comm.Transaction=sqlTra;
    Comm.ExecuteNonQuery();
   }
   sqlTra.Commit();
}
catch (Exception ex) 
{
MessageBox.Show(ex.ToString());
sqlTra.Rollback();
}
finally
{
Conn_close();
}
}

解决方案 »

  1.   


     sqlTra=Conn.BeginTransaction (); 报错为“SqlConnection 不支持并行事务。”
      

  2.   

      for(int i=0;i <arrlist.Count ;i++) 
               { 
        sqlTra=Conn.BeginTransaction (); 
       } 
    循环开始事务?????????///
      

  3.   

    public void RunSqlTrans(ArrayList arrlist) 
       { 
            Conn_open(); 
            sqlTra=Conn.BeginTransaction (); 
            Comm=new SqlCommand(); 
            Comm.Transaction=sqlTra; 
            
    try  

       for(int i=0;i <arrlist.Count ;i++) 
               { 
        Comm.CommandText=arrlist[i].ToString(); 
        Comm.Connection=Conn; 
        //sqlTra=Conn.BeginTransaction (); 
        //Comm.Transaction=sqlTra; 
        Comm.ExecuteNonQuery(); 
       } 
       sqlTra.Commit(); 

    catch (Exception ex)  

    MessageBox.Show(ex.ToString()); 
    sqlTra.Rollback(); 

    finally 

    Conn_close(); 

    }
      

  4.   

    Comm.Transaction=sqlTra;
            sqlTra=Conn.BeginTransaction (); 
    这两句啊
    应该是transaction tran=conn.begintransaction()在.NET2.0中有了新的事务了
    你可以使用一下,方便多了
     using (System.Transactions.TransactionScope scope = new System.Transactions.TransactionScope())
                {
                    //中间代码                scope.Complete();
                }
    中间代码失败,自动回滚
      

  5.   

    也不对 报错"当分配给命令的连接处于挂起的本地事务中时,命令必须具有事务对象才能执行。该命令的 Transaction 属性尚未初始化。"