Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java com.microsoft.sqlserver.jdbc.SQLServerException:将varchar值“014051452X”转换为数据类型int时,转换失败_Java_Sql Server_Jdbc - Fatal编程技术网

Java com.microsoft.sqlserver.jdbc.SQLServerException:将varchar值“014051452X”转换为数据类型int时,转换失败

Java com.microsoft.sqlserver.jdbc.SQLServerException:将varchar值“014051452X”转换为数据类型int时,转换失败,java,sql-server,jdbc,Java,Sql Server,Jdbc,这就是当我单击其他表中的行时将触发的函数。这是可行的,但我不断收到以下异常: public void book_copies_table_clicked(){ try { dtm1.setRowCount(0); int row = dc.book_search_table.getSelectedRow(); Statement s2 = con.createStatement();

这就是当我单击其他表中的行时将触发的函数。这是可行的,但我不断收到以下异常:

public void book_copies_table_clicked(){
        try { 
            dtm1.setRowCount(0);
            int row = dc.book_search_table.getSelectedRow();
            Statement s2 = con.createStatement();
            ResultSet rs1 = s2.executeQuery("select branch_id, copies from book_copies where book_id="+dc.book_search_table.getValueAt(row, 0).toString());
            while(rs1.next()){
                int branchID = rs1.getInt(1);
                String branchID1 = Integer.toString(branchID);
                int copies = rs1.getInt(2);
                String copies1 = Integer.toString(copies);
                dtm1.addRow(new String[] {branchID1,copies1});
            }

        } catch (SQLException ex) {
            Logger.getLogger(implementation_class.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
还有更多的行。我没有把任何东西从字符串转换成int之类的东西。但我最终还是得到了这些

book_copies表有3列。图书编号:varchar;分支机构id:smallint;副本:smallint


我尝试在函数的catch块中放入一条打印消息,结果打印出来,这意味着它正在捕获一个异常,但我不知道为什么。

它作为varchar10存储在我的数据库中的某个地方,无论您是否意识到正在进行int转换。从这里开始…我在退出函数时遇到异常。所有的数据都被完美地打印出来了。有5个分支,while循环完美地循环了5次。014051452X是图书id,存储为varchar。我只是在查询中使用它来检索该书的分支和副本数。我正在对分支id和副本进行转换,因为它们是smallint。得到答案是选择分支id,从book_副本中复制,其中book_id='+dc.book_search_table.getValueAtrow,0.toString+'。错误是我得到了“”。是一个varchar,所以在比较时必须使用
Oct 25, 2014 8:03:31 PM library_management.implementation_class book_copies_table_clicked
SEVERE: null
com.microsoft.sqlserver.jdbc.SQLServerException: Conversion failed when converting the varchar value '014051452X' to data type int.