我遇到了與數據庫有關的問題。實際上,當我更新記錄時,它顯示異常「java.sql.sqlsyntaxerrorexception:numeric和char之間的比較(ucs_basic)不支持」 這裏是我的編碼:java.sql.sqlsyntaxerrorexception:不支持numeric和char(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和德比嵌入式數據庫
,請告訴我,是我寫錯誤的。如果您需要任何其他信息,請隨時詢問。
謝謝
什麼你不錯誤消息明白了嗎? (作爲一個方面說明,你應該閱讀關於SQL注入) – 2017-07-16 13:03:16
作爲一個瘋狂的猜測,我敢打賭STUDENTID是一個數字,所以沒有'STUDENTID ='「+ tf_sid.getText()+」'' – 2017-07-16 13:04:38
實際上我不擅長編程。哪種方法用於解決這個問題或如何解決? –