Java 无法更新数值错误,列类型为';数字';无法保存类型为';CHAR';

Java 无法更新数值错误,列类型为';数字';无法保存类型为';CHAR';,java,sql,jdbc,sql-update,Java,Sql,Jdbc,Sql Update,因此,我试图编写一个代码来更新我的PATIENT表中的一列。不幸的是,我无法更新数字列,因为我收到一个错误,错误是: “NUMERIC”类型的列不能包含“CHAR”类型的值 我得到的另一个错误是,我不能将整数类型作为WHERE子句,有什么想法吗 这是我的密码 private void updateActionPerformed(java.awt.event.ActionEvent evt) { try{

因此,我试图编写一个代码来更新我的PATIENT表中的一列。不幸的是,我无法更新数字列,因为我收到一个错误,错误是: “NUMERIC”类型的列不能包含“CHAR”类型的值

我得到的另一个错误是,我不能将整数类型作为WHERE子句,有什么想法吗

这是我的密码

private void updateActionPerformed(java.awt.event.ActionEvent evt) {                                       
    try{


        Integer value0= Integer.parseInt(pat_id.getText());
        String value1= fName.getText();           
        String value2= lName.getText();
        Integer value3= Integer.parseInt(age.getText());

        String value4= (String)gender.getSelectedItem();
        String value5= address.getText();
        Integer value6= Integer.parseInt(home_number.getText());
        Integer value7= Integer.parseInt(mobile_number.getText());
        String value8= emer_cont_name.getText();
        Integer value9= Integer.parseInt(emer_cont_no.getText());

        String sql= "update PATIENT SET FNAME='"+value1+"', AGE='"+value3+"' WHERE PATIENT_ID='"+value0+"'";
        pst=conn.prepareStatement(sql);

        pst.execute();
        JOptionPane.showMessageDialog(null, "Record has been updated");
    }catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
    }
    Update_table();
}                       

去掉“value3”变量周围的单引号。数值不应该包含它们。

我不是sql专家,但你确定应该用单引号括起数字吗?第一,请使用描述性变量名。例如,你如何判断“value9”是你的紧急联系人?您能确认FNAME是用正确的类型声明的吗?另外,您应该使用参数化查询,因为您当前的内容容易受到SQL注入的攻击。@Joe Yes fname声明的类型正确,之前我只使用fname测试了更新,结果成功,只有当涉及到数字类型时,我才不知道如何工作。@user1724891向我们展示表格structure@user1724891您确定
value3
不为空吗?