【发布时间】:2013-11-27 21:53:05
【问题描述】:
好的,这是我的代码
public static ArrayList getMaterialerFraOrdreNr(String s_date, String e_date) throws SQLException, InterruptedException {
int tal = 0;
ArrayList nameOfColumns = getNameOfColumns(); // name of columns
ArrayList orderNumber = getOrdre_Nr_FromDB(s_date, e_date); // order number
//første loop kører gennem number of columns
//anden loop kører gennem name of column
ResultSet rs = null;
Connection con = null;
try {
Class.forName(DB.driver);
con = DriverManager.getConnection(DB.URL, DB.ID, DB.PW);
for (int i = 1; i < orderNumber.size(); i++) {
for (int j = 1; j < nameOfColumns.size(); j++) {
String nameOfColum = (String) nameOfColumns.get(i);
int orderNr = (Integer) orderNumber.get(j);
System.out.println("orderNr " + orderNr);
//SELECT v1001 FROM ORDRE_spec WHERE ordre_nr = 1;
String query = "SELECT ? AS ans FROM ordre_spec WHERE ordre_nr = ?";
PreparedStatement prest = con.prepareStatement(query);
prest.setString(1, nameOfColum);
prest.setInt(2, orderNr);
System.out.println("orderNr " + orderNr);
System.out.println("nameOfColum = " + nameOfColum);
rs = prest.executeQuery();
if(rs.next()){
tal = rs.getInt("ans");
MaterialeNum.add(tal);
System.out.println("materiale num = " + MaterialeNum);
}
}
}
} catch (ClassNotFoundException | SQLException ee) {
System.out.println("fail og der er så her");
System.err.println(ee);
} finally {
con.close();
}
System.out.println(kundeNum.toString());
return kundeNum;
}
public static void main(String[] args) throws SQLException, InterruptedException {
NewClass.getMaterialerFraOrdreNr("1990-10-10", "2020-10-10");
}
我的问题是我得到一个 java.sql.SQLException: Fail to convert to internal representation
我真的看不出错误应该是什么..如果你能看到错误请帮忙:)
【问题讨论】:
-
请在您的 catch 块中添加一个 printStackTrace 语句。重新运行你的程序,并告诉我们异常。异常可能会告诉发生异常的行
-
当数据库中的类型与您
rs.getXXX()rs.setXXX()类型不兼容时,通常会引发该异常。告诉我们您的表的架构。 -
这是 StackTrace java.sql.SQLException:无法转换为内部表示 java.lang.Throwable:打印堆栈跟踪:在 com.sun.corba.se.impl.util.Utility.printStackTrace (Utility.java:933) 在 data.NewClass.getMaterialerFraOrdreNr(NewClass.java:192) 在 data.NewClass.main(NewClass.java:204)
-
您选择的所有列是否都包含整数?在我看来,如果“ans”包含字符串,“tal = rs.getInt("ans")”可能会不高兴。
-
第一个?是表中列的名称。第二个是订单号.. 我需要的只是这两个碰撞的 int