SqlConnection conn = new SqlConnection("server=localhost;database=shoupiao;uid=sa;pwd=");       
        string sql1 = "delete from zwxx where checi='" + DropDownList1 .SelectedValue+ "'";
        string sql2 = "delete from wpxx where checi='" + DropDownList1.SelectedValue + "'";
        string sql3 = "delete from chpksh where checi='" + DropDownList1.SelectedValue + "'";
        string sql4 = "delete from chyush where checi='" + DropDownList1.SelectedValue + "'";
        string sql5 = "delete from zhannode where checi='" + DropDownList1.SelectedValue + "'";
        string sql6 = "delete from checilj where checi='" + DropDownList1.SelectedValue + "'";
        string sql7 = "delete from checixx where checi='" + DropDownList1.SelectedValue + "'";
        SqlCommand cmd1 = new SqlCommand(sql1,conn);
        SqlCommand cmd2 = new SqlCommand(sql2, conn);
        SqlCommand cmd3 = new SqlCommand(sql3, conn);
        SqlCommand cmd4 = new SqlCommand(sql4, conn);
        SqlCommand cmd5 = new SqlCommand(sql5, conn);
        SqlCommand cmd6 = new SqlCommand(sql6, conn);
        SqlCommand cmd7 = new SqlCommand(sql7, conn);
        conn.Open(); 
        cmd1.Transaction = trans;
        conn.BeginTransaction();
        try
        {
            cmd1.ExecuteNonQuery();           
            cmd2.ExecuteNonQuery();           
            cmd3.ExecuteNonQuery();
            cmd4.ExecuteNonQuery();            
            cmd5.ExecuteNonQuery();                       
            cmd6.ExecuteNonQuery();
            cmd7.ExecuteNonQuery(); 
            trans.Commit();
        }
        catch
        {
            trans.Rollback();
            Response.Write("<script language='javascript'>alert('删除失败!');</script>");
        }
        conn.Close();    }

解决方案 »

  1.   

    结果是出现SqlConnection 不支持并行事务”的错误。我哪里出错了啊?我对事务不了解,希望谁懂的帮帮我啊
      

  2.   

    SqlTransaction trans= conn.BeginTransaction();
      

  3.   

    cmd2....7的Transaction 设成trans试试
      

  4.   

    不建议这样使用,
    最好是写成一个cmd执行.
    或者是写成一个存储过程,传DropDownList1.SelectedValue这个参数即可.
    没有必要执行7条这样的,
    貌似调用了多个事务并行执行.
      

  5.   

    trans= conn.BeginTransaction();
    cmd2.Transaction=trans;
    cmd3.Transaction=trans;
    cmd4.Transaction=trans;
    cmd5.Transaction=trans;
    cmd6.Transaction=trans;
    cmd7.Transaction=trans;
      

  6.   

    只要SqlConnection 上开启事务就可以了,其他的都不需要的。
      

  7.   

    在conn.open()之后定义的,忘记贴上了
      

  8.   

    SqlTransaction trans = conn.BeginTransaction();
      

  9.   

      SqlConnection conn = new SqlConnection("server=localhost;database=shoupiao;uid=sa;pwd=");       
            string sql1 = "delete from zwxx where checi='" + DropDownList1 .SelectedValue+ "'";
            string sql2 = "delete from wpxx where checi='" + DropDownList1.SelectedValue + "'";
            string sql3 = "delete from chpksh where checi='" + DropDownList1.SelectedValue + "'";
            string sql4 = "delete from chyush where checi='" + DropDownList1.SelectedValue + "'";
            string sql5 = "delete from zhannode where checi='" + DropDownList1.SelectedValue + "'";
            string sql6 = "delete from checilj where checi='" + DropDownList1.SelectedValue + "'";
            string sql7 = "delete from checixx where checi='" + DropDownList1.SelectedValue + "'";
            SqlCommand cmd1 = new SqlCommand(sql1,conn);
            SqlCommand cmd2 = new SqlCommand(sql2, conn);
            SqlCommand cmd3 = new SqlCommand(sql3, conn);
            SqlCommand cmd4 = new SqlCommand(sql4, conn);
            SqlCommand cmd5 = new SqlCommand(sql5, conn);
            SqlCommand cmd6 = new SqlCommand(sql6, conn);
            SqlCommand cmd7 = new SqlCommand(sql7, conn);
            conn.Open(); 
            SqlTransaction trans = conn.BeginTransaction();
            
            try
            {
                cmd1.ExecuteNonQuery();           
                cmd2.ExecuteNonQuery();           
                cmd3.ExecuteNonQuery();
                cmd4.ExecuteNonQuery();            
                cmd5.ExecuteNonQuery();                       
                cmd6.ExecuteNonQuery();
                cmd7.ExecuteNonQuery(); 
                trans.Commit();
            }
            catch
            {
                trans.Rollback();
                Response.Write("<script language='javascript'>alert('删除失败!');</script>");
            }
            conn.Close();    }现在不报错了,但是返回删除失败!
      

  10.   

    try
            {
                cmd1.ExecuteNonQuery();           
                cmd2.ExecuteNonQuery();           
                cmd3.ExecuteNonQuery();
                cmd4.ExecuteNonQuery();            
                cmd5.ExecuteNonQuery();                       
                cmd6.ExecuteNonQuery();
                cmd7.ExecuteNonQuery(); 
                trans.Commit();
            }
            catch(Exception ex)
            {
                trans.Rollback();
                Response.Write(ex.Message);
            } 
      

  11.   

    改成你这个代码后出现这样的错误:如果分配给命令的连接位于本地挂起事务中,ExecuteNonQuery 要求命令拥有事务。命令的 Transaction 属性尚未初始化。 
          
      

  12.   

    改成你这个代码后出现这样的错误:如果分配给命令的连接位于本地挂起事务中,ExecuteNonQuery 要求命令拥有事务。命令的 Transaction 属性尚未初始化。  
           
      

  13.   

    每个cmd都要赋一下Transaction=trans