使用MySqlTransaction进行多次插入时出错

时间:2014-07-21 09:41:41

标签: c# mysql windows

我在Windows中有一个表单,我正在为标题和详细信息执行insert语句。 我正在使用MySqlTransaction作为表单。如果标头和详细信息中没有错误,则事务将被提交,但是当插入查询详细信息时出现错误,则回滚时会出现以下错误

  

已经有一个与此Connection关联的开放DataReader   必须先关闭。

这是我的代码。

public string Insert_Hardening_Measures_HdrANDDtl(BL_Vessel_Hardening_Measures objHdr, List<BL_Vessel_Hardening_Measures> objDtl)
        {
            string success = "true";
            string success1 = "";


            MySqlConnection MySqlConnection1 = new MySqlConnection(strCon);
            MySqlConnection1.Open();
            MySqlTransaction MyTransaction = MySqlConnection1.BeginTransaction();

            MySqlCommand MyCommand = new MySqlCommand();

            MyCommand.Transaction = MyTransaction;
            MyCommand.Connection = MySqlConnection1;             

            try
            {
            MyCommand.CommandText = "insert into hardening_measures_hdr (Hardening_Measures_Hdr_id,Month,Year) values (" + objHdr.Hardening_Measures_Hdr_id + ",'" + objHdr.Month + "','" + objHdr.Year + "')";
               MyCommand.ExecuteNonQuery();
                for (int i = 0; i < objDtl.Count; i++)
                {


                MyCommand.CommandText = "insert into hardening_measures_dtl (Hardening_Measures_Dtl_id,Hardening_Measures_Hdr_id,Hardening_Measures_Mst_id,Value) values (" + objDtl[i].Hardening_Measures_Dtl_id + "," + objDtl[i].Hardening_Measures_Hdr_id + ",'" + objDtl[i].Hardening_Measures_Mst_id + ",'" + objDtl[i].Value + "')";
                MyCommand.ExecuteNonQuery();
                }


                MyTransaction.Commit();
                MySqlConnection1.Close();
            }
            catch
            {

                MyTransaction.Rollback();
            }


            return success;
        }

任何遇到此类问题的人都请提出建议

0 个答案:

没有答案