解决方案 »

  1.   

    String sql="update customers set ?=? where customerID=?set ?=?,   因为第一个占位符是sql,在预编译时不能通过。
    你可以把set中的第一个占位符写入方式改成Statement的方式而不是用PreparedStatement
    两个之间的差别自己可以百度下。。
      

  2.   

    你把set ?=?第一个问号改成字段名,参数化传值不允许这样的,它只允许传入第二号问号所在位置的值 
      

  3.   

    不要用?=?,用字符串拼接,例如"update customers set "+b+"=? where customerID=?",在看看你的ID类型是否是字符型的。
      

  4.   

    直接字符串拼接把字段名加进去  用preparedstatement传入的值是有类型的  你传入string类型   字段名就变成了  '字段名'  带有引号了  无法识别