【问题标题】:Netbeans Java Error: Invalid Character Value for CastNetbeans Java 错误:Cast 的字符值无效
【发布时间】:2015-12-09 12:32:44
【问题描述】:

我无法将记录插入我的数据库,我猜我的整数和字符串有问题?

Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");

            Connection dbConn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\kim\\Desktop\\Thesis Docu\\FPAS\\FPAS.accdb");
            Statement s = dbConn.createStatement();
            ResultSet mResult =s.executeQuery("SELECT * FROM tblstudentrecord");
            if(mResult.next()){
                String sql = "INSERT INTO tblstudentrecord(studentID,instructorID,courseID,day,date,time,Category1,Category2,a,b,c,d,e,Rating,Comment) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
                PreparedStatement insert = dbConn.prepareStatement(sql);
                insert.setString(1,jLabel2.getText());
                insert.setString(2,jTxtFaculty.getText());                    
                insert.setString(3,jTxtCourse.getText());
                insert.setString(4,jTxtDay.getText());
                insert.setString(5,jLabel35.getText());
                insert.setString(6,jTxtTime.getText());
                int i = Integer.parseInt(radio);
                int i1 = Integer.parseInt(radio1);
                int i2 = Integer.parseInt(radio2);
                int i4 = Integer.parseInt(radio4);
                int i6 = Integer.parseInt(radio6);
                insert.setInt(7,i);
                insert.setInt(8,i1);
                insert.setInt(9,i2);
                insert.setString(10,radio3);
                insert.setInt(11,i4);
                insert.setString(12,radio5);
                insert.setInt(13,i6);
                insert.setString(14,radio7);
                insert.setString(15,jTextField1.getText());
            FacultyName.removeAllItems();
                         insert.execute();  

【问题讨论】:

  • 请显示您得到的编译错误消息或异常堆栈跟踪。
  • 我想这与我保存 int 值时的逗号或双引号有关?单选是 int 数据类型的值..
  • 我没有在代码中看到任何类型转换;通常阅读编译错误消息/堆栈跟踪可以解决问题。可能,您可以将插入语句字符串拆分为更小的部分,然后查看发生错误的行。
  • 好吧,我真的不明白我的插入语句有什么问题,我的错误是“演员的字符值无效”
  • 请在编写另一行这样的代码之前阅读this

标签: java casting int


【解决方案1】:
PreparedStatement insert = dbConn.prepareStatement("INSERT INTO tblstudentrecord(studentID,instructorID,courseID,day,date,time,Category1,Category2,a,b,c,d,e,Rating,Comment) VALUES ("
                 + "'" + x +"'," 
                 + "'" + x +"',"
                 + "'" + x +"',"
                 + "'" + x +"',"
                 + "'" + x +"',"
                 + "'" + x +"',"
                 + "'" + radio +"',"
                 + "'" + radio1 +"',"
                 + "'" + radio2 +"',"
                 + "'" + radio3 +"',"
                 + "'" + radio4 +"',"
                 + "'" + radio5 +"',"
                 + "'" + radio6 +"',"
                 + "'" + radio7 +"',"
                 + "'" + jTextField1.getText() +"'"
                 +")");

【讨论】:

  • 不。这不是一个正确的答案。它没有任何解释,也没有任何帮助。
  • 当我之前这样做时,我遇到了同样的错误。我猜它是在我的插入语句中。无论如何,谢谢你的回应:)
  • 为什么投反对票? OPs 引用的字符串不正确。我只是纠正了它。如果 radio、radio1 等是整数,那么除了修复他引用的字符串之外不需要其他任何东西。
【解决方案2】:

你的引用是错误的!另外,哪种类型是“无线电”变量?如果这些是 int,那么您可以尝试使用 toString() 方法。试试这样(toString() 是可选的,但我留给你看如何使用它):

PreparedStatement insert = dbConn.prepareStatement("INSERT INTO tblstudentrecord(studentID,instructorID,courseID,day,date,time,Category1,Category2,a,b,c,d,e,Rating,Comment) VALUES ("
         + "'" + jLabel2.getText() +"',"  
         + "'" + jTxtFaculty.getText() +"'," 
         + "'" + jTxtCourse.getText() +"',"
         + "'" + jTxtDay.getText() +"',"
         + "'" + jLabel35.getText() +"',"
         + "'" + jTxtTime.getText() +"',"
         + radio.toString() + ","
         + radio1.toString() + ","
         + radio2.toString() + ","
         + radio3.toString() + ","
         + radio4.toString() +","
         + radio5.toString() + ","
         + radio6.toString() +","
         + radio7.toString() +","
         + "'" + jTextField1.getText() +"'"
         +")");

虽然听起来确实像无线电变量是某种形式的一些控件。如果是,请确保使用正确的函数来从中提取值。

【讨论】:

  • java 不支持对原语进行方法调用。您的“答案”只是猜测,应该是评论。
  • 我现在得到的错误是 RADIO: invalid schema >_
  • 我忘了修正引号,所以我在发布后立即编辑了答案。
  • 与编辑相关:在哪里引用错误?我没有在作者代码中看到任何语法错误。
  • 尝试不使用 toString()。请确保收音机是整数。如果需要,请给我发一份广播声明。
猜你喜欢
  • 2020-01-30
  • 1970-01-01
  • 2011-02-08
  • 2011-01-22
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
  • 2016-09-19
相关资源
最近更新 更多