public int exe_insert_ddxx(string kh_ljid,string d_bdrq,string bz,string d_fhflxr,string d_fhflxdh,string d_fhfsj,string d_shfdw,string d_shflxr,string d_shflxdh,string d_shflxdz,string d_shfsj,string d_jsd,string d_ssbm,string d_sfd,string d_mdd,string d_skfs,string d_ztsh,string d_je,string d_sfqs,string d_hdzs,string d_psz,string d_dshk,string d_smjz,string d_bxf,string d_zcf,string d_xcf,string d_shf,string d_yqdhrq)
        {
            int val = -1;
            d_bdrq=(d_bdrq == "" ? null : d_bdrq);
            d_jsd = (d_jsd == "" ? null : d_jsd);
            d_je = (d_je == "" ? null : d_je);
            d_dshk = (d_dshk == "" ? null : d_dshk);
            d_smjz = (d_smjz == "" ? null : d_smjz);
            d_bxf = (d_bxf == "" ? null : d_bxf);
            d_zcf = (d_zcf == "" ? null : d_zcf);
            d_xcf = (d_xcf == "" ? null : d_xcf);
            d_shf = (d_shf == "" ? null : d_shf);
            d_yqdhrq = (d_yqdhrq == "" ? null : d_yqdhrq);            SqlParameter[] MyPara = new SqlParameter[33];
            MyPara[0] = new SqlParameter("@kh_ljid", kh_ljid);
            MyPara[1] = new SqlParameter("@d_bdrq", d_bdrq);
            MyPara[2] = new SqlParameter("@d_ddms", bz);
            MyPara[3] = new SqlParameter("@d_ntime", DateTime.Now);
            MyPara[4] = new SqlParameter("@d_czy", HttpContext.Current.Session["userid"]);
            MyPara[5] = new SqlParameter("@d_sfsc", 0);
            MyPara[6] = new SqlParameter("@d_fhflxr", d_fhflxr);
            MyPara[7] = new SqlParameter("@d_fhflxdh", d_fhflxdh);
            MyPara[8] = new SqlParameter("@d_fhfsj", d_fhfsj);
            MyPara[9] = new SqlParameter("@d_shfdw", d_shfdw);
            MyPara[10] = new SqlParameter("@d_shflxr", d_shflxr);
            MyPara[11] = new SqlParameter("@d_shflxdh", d_shflxdh);
            MyPara[12] = new SqlParameter("@d_shflxdz", d_shflxdz);
            MyPara[13] = new SqlParameter("@d_shfsj", d_shfsj);
            MyPara[14] = new SqlParameter("@d_jsd", d_jsd);
            MyPara[15] = new SqlParameter("@d_ssbm", d_ssbm);
            MyPara[16] = new SqlParameter("@d_sfd", d_sfd);
            MyPara[17] = new SqlParameter("@d_mdd",d_mdd );
            MyPara[18] = new SqlParameter("@d_skfs", d_skfs);
            MyPara[19] = new SqlParameter("@d_ztsh", d_ztsh);
            MyPara[20] = new SqlParameter("@d_je", d_je);
            MyPara[21] = new SqlParameter("@d_xxfsh", 0);
            MyPara[22] = new SqlParameter("@d_tffsh", 0);
            MyPara[23] = new SqlParameter("@d_sfqs", d_sfqs);
            MyPara[24] = new SqlParameter("@d_hdzs", d_hdzs);
            MyPara[25] = new SqlParameter("@d_psz", d_psz);
            MyPara[26] = new SqlParameter("@d_dshk", d_dshk);
            MyPara[27] = new SqlParameter("@d_smjz", d_smjz);
            MyPara[28] = new SqlParameter("@d_bxf", d_bxf);
            MyPara[29] = new SqlParameter("@d_zcf", d_zcf);
            MyPara[30] = new SqlParameter("@d_xcf", d_xcf);
            MyPara[31] = new SqlParameter("@d_shf", d_shf);
            MyPara[32] = new SqlParameter("@d_yqdhrq", d_yqdhrq);
            var sql = "insert into ddxx(d_gsid,d_bdrq,d_ddms,d_ntime,d_czy,d_sfsc,d_fhflxr,d_fhflxdh,d_fhfsj,d_shfdw,d_shflxr,d_shflxdh,d_shflxdz,d_shfsj,d_jsd,d_ssbm,d_sfd,d_mdd,d_skfs,d_ztsh,d_je,d_xxfsh,d_tffsh,d_sfqs,d_hdzs,d_psz,d_dshk,d_smjz,d_bxf,d_zcf,d_xcf,d_shf,d_yqdhrq)values(@kh_ljid,@d_bdrq,@d_ddms,@d_ntime,@d_czy,@d_sfsc,@d_fhflxr,@d_fhflxdh,@d_fhfsj,@d_shfdw,@d_shflxr,@d_shflxdh,@d_shflxdz,@d_shfsj,@d_jsd,@d_ssbm,@d_sfd,@d_mdd,@d_skfs,@d_ztsh,@d_je,@d_xxfsh,@d_tffsh,@d_sfqs,@d_hdzs,@d_psz,@d_dshk,@d_smjz,@d_bxf,@d_zcf,@d_xcf,@d_shf,@d_yqdhrq);select @@identity;";            SqlConnection conn = new SqlConnection(wl_const.connectionstring);
            conn.Open();
            SqlTransaction trans = conn.BeginTransaction();                        try
            {
               
                object id = SqlHelper.ExecuteScalar(wl_const.connectionstring , CommandType.Text, sql, MyPara);
                id = id != null ? id : "";
                int.TryParse(id.ToString(), out val);
                var sqlxp="insert into plandd(p_ddid)values("+val+")";
                object dd = SqlHelper.ExecuteScalar(wl_const.connectionstring, CommandType.Text, sqlxp, MyPara);
                
                trans.Commit();
                
            }
            catch (Exception e)
            {
                trans.Rollback();
                throw e;
               val = -1;
                
            }
            return val;        }
    }
为什么启用了事务,还是不行,ddxx表还是插入了信息,并且有报错信息

解决方案 »

  1.   

    参数问题
    你的sqlhelper根本没调用事务
      

  2.   

    object id = SqlHelper.ExecuteScalar(trans , CommandType.Text, sql, MyPara); 
    这里你要用到这个trans
      

  3.   

    object id = SqlHelper.ExecuteScalar(trans,wl_const.connectionstring , CommandType.Text, sql, MyPara); 
      

  4.   

    你是定义了一个事务,但是还要cmd.transcation=trans;