if (jTable.getValueAt(k, 4) == "申请") {
Object Arevaluse =  jTable.getValueAt(k, 0);
Object Cidvaluse = jTable.getValueAt(k, 1);
jTextArea = new JTextArea("请输入理由");
teString = JOptionPane.showInputDialog(jFrame, jTextArea.getText(), "申请理由",1);
if (teString != null) {
JOptionPane.showMessageDialog(jFrame, "申请成功");
try {
statement.executeUpdate("insert into studentapplyclassroom  values(" + Arevaluse + "," + Cidvaluse + "," +"2010"+","+"2010"+","+ teString+")");

} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
System.out.println("insert into studentapplyclassroom values (" + Arevaluse + "," + Cidvaluse + "," +"2010"+","+"2010"+","+ teString+")");
}
 }
输入文本后提示错误:Unknown column 'vdfgbfd' in 'field list'
我想要的是在jTextArea 输入的文本插入到表中的reason字段,但是,现在在jTextArea 输入的文本,他是会在搜索表中有没有这个字段,请问我的代码,哪里写错了?

解决方案 »

  1.   

    出错在sql语句这里
    ("insert into studentapplyclassroom values(" + Arevaluse + "," + Cidvaluse + "," +"2010"+","+"2010"+","+ teString+")
    是表中的列与插入的数据对应不上,
    insert into table_name(a_c,bc,dc) values('a','b','c');
    像这要将sql写规范试试.
      

  2.   

    写数据要这样写,例如
    "'"+Arevaluse+"'"+....
    要插入的数据必须用''弄起来,这是语法.或者你用,另外一个方法,就是preparedStatement
    这个还可以防止sql注入
      

  3.   

    对。同意楼上所说:
    insert into studentapplyclassroom values("'" + Arevaluse + "'","'" + Cidvaluse + "'""," +"2010"+","+"2010"+","'"+ teString+"'")
      

  4.   

    楼主尽量学会用PreparedStatement
    用了你会很爽的
    呵呵
      

  5.   


    更应该学会CallableStatement,或许那样会更爽了
      

  6.   

    感谢各位热心的回帖~~~~~~~~其实在出错的时候我就用preparestatement 来写了。我就是想知道为什么用sql语句会发生错误。看了大家的回答才知道原来插入语句要这样写的。受教了。谢谢大家