【发布时间】:2017-07-16 12:57:42
【问题描述】:
我遇到了与数据库相关的问题。实际上,当我更新记录时,它显示异常“java.sql.sqlsyntaxerrorexception:不支持数字和字符之间的比较(ucs_basic)” 这是我的编码:
conn = JavaConnectD.Connerdb();
int p = JOptionPane.showConfirmDialog(null, "Do you really want to update this record", "UPDATE", JOptionPane.YES_NO_OPTION);
if(p==0){
try{
String sql="UPDATE SANDEEP.STUDENTRECORD SET REGTYPE='"+reg_type.getSelectedItem().toString()+"',SESSION='"+combo_session.getSelectedItem().toString()+"',STUDENTID='"+tf_sid.getText()+"',NAME='"+tf_name.getText()+"',"
+ "CLASS='"+combo_class.getSelectedItem().toString()+"',FNAME='"+tf_fname.getText()+"',MNAME='"+tf_mname.getText()+"',DOB='"+(((JTextField)txt_Date.getDateEditor().getUiComponent()).getText())+"',ADDRESS='"+tf_adrss.getText()+"',MOBILE='"+tf_mobile.getText()+"',PHONE='"+tf_phone.getText()+"',REGFEE='"+tf_reg.getText()+"',ADDMISSION='"+tf_addmision.getText()+"' where STUDENTID='"+tf_sid.getText()+"' ";
pst=conn.prepareStatement(sql);
pst.executeUpdate();
JOptionPane.showMessageDialog(null, "Record Updated");
tf_sid.setText("");
tf_name.setText("");
tf_fname.setText("");
tf_mname.setText("");
tf_adrss.setText("");
tf_mobile.setText("");
tf_phone.setText("");
tf_reg.setText("");
tf_addmision.setText("");
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
我正在使用 netbeans 7.1 和 derby 嵌入式数据库
请告诉我哪里写错了。如果您需要任何其他信息,请随时询问。
谢谢
【问题讨论】:
-
错误信息中有什么不明白的地方? (作为旁注,您应该阅读有关 sql 注入的内容)
-
作为一个疯狂的猜测,我打赌 STUDENTID 是一个数字所以不是
STUDENTID='"+tf_sid.getText()+"' -
其实我不擅长编程。使用哪种方法或如何解决?
标签: java database netbeans syntax-error derby