在servlet中使用如下语句:
String deleteWordStyle = request.getParameter("deleteWordStyle");
String deleteWord = request.getParameter("deleteWord");
String selectStatement="delete from escuage where "+deleteWordStyle+"="+deleteWord;
prepStmt = con.prepareStatement(selectStatement)"deleteWord"对数字有效,当他是字母和汉字时都不行
看了好两天了,也没弄好
还望各位多多指教!!

解决方案 »

  1.   

    String selectStatement="delete from escuage where "+deleteWordStyle+"="+deleteWord;
    --
    String selectStatement="delete from escuage where "+deleteWordStyle+"='"+deleteWord+"'";
    sql的数据类型转换的问题,给deleteWord加上单引号就可以了。
      

  2.   

    加一个单引号时是两个错误,两个单引号时是四个错误我知道你的意思,deleteWord是变量,不是常量
      

  3.   

    错误就是unclosed character literal我上面的语句可以删除数据库中的数字
    可是删不成字母和汉字
    刚吃饭去了
    回晚了,对不起
      

  4.   

    就是没加单引号啊,2楼都写出来了,还有问题就是你本身数据字段deleteWordStyle的类型,不对应了
      

  5.   

    加了,我都试了
    程序中我是 String deleteWord数据库中是char(20)
      

  6.   

    你肯定不是按照二楼哪样的写法,unclosed character literal,,你的引号数目不是双数,或引的不对,二楼的没错的,你看看整个程序有没有未完成的引号啊,楼主不会还是用记事本来写程序吧?
      

  7.   

    "delete from escuage where "+deleteWordStyle+"="+deleteWord把这一句输出看看,有什么错误没有?
      

  8.   

    表的主键是哪个?String selectStatement="delete from escuage where "+deleteWordStyle+"="+deleteWord;改为:
    String selectStatement="delete from escuage where 主键 = '" + deleteWord + "'";
      

  9.   

    表的主键有两个
    deleteWord只是其中一个
    感谢大家来关心
      

  10.   

    那就改为:
    String selectStatement="delete from escuage where 主键1 ='" + deleteWord + "' and 主键2 = '" + deleteWordStyle + "'";删除一个数据很简单啊
    别弄复杂化了
      

  11.   

    String selectStatement="delete from escuage where "+deleteWordStyle+"="+deleteWord;
    --
    String selectStatement="delete from escuage where "+deleteWordStyle+"='"+deleteWord+"'";
    sql的数据类型转换的问题-------------------------------------------------------------
    同意以上说法---------------------------
    仔细检查代码,unclosed character literal错误是字符串不完整
      

  12.   

    con.prepareStatement(selectStatement)
    .看清楚点啊。.是预处理啊.  "?"占位符呢 
    String selectStatement="delete from escuage where ?=?;
    prepStmt.setString(1,deleteWord);
    prepStmt.setString(2,deleteWordStyle);
      

  13.   

    string.Format("delete from escuage where 列名='{0}'",内容)