将数据插入表时,出现“用于转换的无效字符值”错误。 Java

时间:2019-03-15 18:34:42

标签: java sql-insert

try {               
                    Connection conn=DriverManager.getConnection("jdbc:ucanaccess://E:\\testing.accdb");
                    String sql="insert into Books (Book_ID,Book_Name,Subject_ID,Author) values (?,?,?,?) ";
                    PreparedStatement pst=conn.prepareStatement(sql);
                    pst.setString(1, textField_BN.getText());
                    pst.setString(2, textField_SID.getText());
                    pst.setString(3, textField_BID.getText());
                    pst.setString(4, textField_A.getText());
                    pst.executeUpdate();

                    JOptionPane.showMessageDialog(null, "Data Saved");

                } catch (Exception e) {
                    e.printStackTrace();
                }

我使用Ucanaccess建立了连接,并成功打印了表格。但是,我尝试编写一个将向表中输入行的插入查询,这给了我错误

  

UCAExc ::: 4.0.4数据异常:在以下位置强制转换的字符值无效   net.ucanaccess.jdbc.UcanaccessPreparedStatement.setString(UcanaccessPreparedStatement.java:742)

1 个答案:

答案 0 :(得分:0)

查看您的Java类中的742行,查看它设置了哪个字段,然后验证您是否在传递字符串。由于将无效的数据类型传递到准备好的语句中而导致该类型的异常发生,该语句期望基于您的模式的其他数据类型。如果必须添加一些调试信息以打印要设置的每个对象值的值,还需要检查模式以确保在prepared语句中设置的java数据类型匹配。

"invalid character value for cast" error on INSERT via UCanAccess