string sql = "update dtMT发票开单表 set 发票开单号=@fpksdID,客户代码=@khdm,增值票金额=@bczhpkpje,运输票金额=@bcyspkpje,票面金额=@pmje,日期=@rq,经办人=@jbr,增值票备注=@zhpbz,运输票备注=@yspbz,门岗人员=@mgry, 业务员=@ywy";
谁帮我看看sql语句对吗SQLString

解决方案 »

  1.   

      没有限制条件where 语句,如果是替换所有应该也没问题。
      

  2.   

    单从这个Sql上看没什么问题,把你的代码都贴上来。
      

  3.   

    错误原因是  :必须声明标量变量@khdm
      

  4.   

      public int ExecuteSQL(string sql, params SqlParameter[] commandParameters)
            {
                this._conn = new SqlConnection(ConfigurationSettings.AppSettings["con"]);
                _cmd = new SqlCommand(sql, _conn);
                for (int i = 0; i < commandParameters.Length; i++)
                {
                    _cmd.Parameters.Add(commandParameters[i]);
                }
                try
                {
                    this._conn.Open();
                   int result= this._cmd.ExecuteNonQuery();
                    return result;
                }
                catch
                {                return 0;
                }            finally
                {
                    if (this._cmd != null) _cmd.Dispose();
                    this._conn.Close();
                }
            }
      

  5.   

    这个图不行啊。
    要看你具体cmd执行  异常把代码都挡住了
      

  6.   

     public static bool AlterDataKD(XSGLModel1  model)
            {            SqlParameter[] param = new SqlParameter[11];            param[0] = new SqlParameter("@fpksdID", SqlDbType.NVarChar, 8);
                param[0].Value = model.fpksdID;            param[1] = new SqlParameter("@khdm", SqlDbType.NVarChar, 3);
                param[1].Value = model.khdm;            //param[2] = new SqlParameter("@khqc", SqlDbType.NVarChar, 10);
                //param[2].Value = model.khqc;            //param[3] = new SqlParameter("@zhpykke", SqlDbType.Decimal);
                //param[3].Value = model.zhpykke;            param[2] = new SqlParameter("@bczhpkpje", SqlDbType.Decimal);
                param[2].Value = model.bczhpkpje;            //param[5] = new SqlParameter("@zhpkpsyje", SqlDbType.Decimal);
                //param[5].Value = model.zhpkpsyje;            param[3] = new SqlParameter("@zhpbz", SqlDbType.NVarChar, 50);
                param[3].Value = model.zhpbz;            //param[7] = new SqlParameter("@yspykke", SqlDbType.Decimal);
                //param[7].Value = model.yspykke;            param[4] = new SqlParameter("@bcyspkpje", SqlDbType.Decimal);
                param[4].Value = model.bcyspkpje;
                //param[9] = new SqlParameter("@yspkpsyje", SqlDbType.Decimal);
                //param[9].Value = model.yspkpsyje;
                param[5] = new SqlParameter("@yspbz", SqlDbType.NVarChar, 50);
                param[5].Value = model.yspbz;
                param[6] = new SqlParameter("@pmje", SqlDbType.Decimal);
                param[6].Value = model.pmje;
                param[7] = new SqlParameter("@ywy", SqlDbType.NVarChar, 4);
                param[7].Value = model.ywy;
                param[8] = new SqlParameter("@mgry", SqlDbType.NVarChar, 4);
                param[8].Value = model.mgry;
                param[9] = new SqlParameter("@jbr", SqlDbType.NVarChar, 4);
                param[9].Value = model.jbr;            param[10] = new SqlParameter("@rq", SqlDbType.DateTime);
                param[10].Value = model.rq;
               
                string sql = "update dtMT发票开单表 set 发票开单号=@fpksdID,客户代码=@khdm,增值票金额=@bczhpkpje,运输票金额=@bcyspkpje,票面金额=@pmje,日期=@rq,经办人=@jbr,增值票备注=@zhpbz,运输票备注=@yspbz,门岗人员=@mgry, 业务员=@ywy";
                sqlHandler sh = new sqlHandler();
                try
                {
                    // 执行数据命令来新增数据记录。
                    //insertCMD.ExecuteNonQuery();
                    int result = sh.ExecuteSQL(sql, param);
                    return result > 0;
                }
                catch
                {
                    return false;
                }
            
            }
      

  7.   

    model.khdm为null,该参数就直接被忽略而不被传递,对于字符串,你需要自己判断是否为null,举例如下:
    param[1] = new SqlParameter("@khdm", SqlDbType.NVarChar, 3);
    param[1].Value = model.khdm??(object)DBNull.Value;;