自己认为没错 编译器说 未处理的“System.Data.OleDb.OleDbException”类型的异常出现在 System.Data.dll 中。其他信息: UPDATE 语句的语法错误。分快用完了 哎
winform 程序       public int GoodsEdit(Add g)
        {
            DAL.GlobalFunction goods = new DAL.GlobalFunction();
            goods.Number = get_number;
                if (goods.GoodsSelect(goods).Tables[0] != null)  //记录存在修改 否则添加记录
                {
                    
                    OleDbParameter[] parms = {   
      data.MakeInParam("@get_number",  OleDbType.VarChar, 30, g.Get_number),
                  data.MakeInParam("@get_count",  OleDbType.Integer, 20, g.Get_count),
        };
                  
                    return (DAL.Helper.ExecuteNonQuery("UPDATE Goods SET count=@get_count WHERE number=@get_number", parms));
                                           
               }
            else
            {
                return 0;
            }   
        }

解决方案 »

  1.   

    UPDATE Goods SET [count]=@get_count WHERE [number]=@get_number
    关键字要加[]标识
      

  2.   

    现在 在编译器不会提示错误  可是 数据进不了 数据库 我以为是  @get_count 或者  =@get_number
    的问题 可是语句换成
                return (DAL.Helper.ExecuteNonQuery("INSERT INTO Goods_add(get_number,get_count,get_date) VALUES (@get_number,@get_count,@get_date)", prams));执行正常 数据能够到达数据库
      

  3.   

    return (DAL.Helper.ExecuteNonQuery("UPDATE Goods SET [count]=@get_count WHERE number=@get_number", parms));
    数据库是否有该值,看看 g.Get_number,get_count 值