我有以下程序,用户必须在其中提供订单代码,以获取客户及其订单的数据。我在名为Catalog
的数据库中创建了一个视图,其中包含了所需的所有数据。但是当我运行我的程序时,我收到以下错误SQLException: [Microsoft][ODBC SQL Server Driver]Invalid Descriptor Index
。是因为观点吗?或者我的代码有问题?另外我想知道rs.toString();
是否是打印结果的正确功能。
public class Orders {
public static void main(String[] args) {
int order_code;
int cust_code;
int quantity;
double price;
String name;
Scanner input = new Scanner (System.in);
System.out.print("Please insert order code: ");
order_codej = input.nextInt();
String url = "jdbc:odbc:orders";
Connection dbcon;
Statement stmt;
ResultSet rs;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(java.lang.ClassNotFoundException e) {
System.out.print("ClassNotFoundException: ");
System.out.println(e.getMessage());
}
try {
dbcon = DriverManager.getConnection(url,"mybase", "mycode");
stmt = dbcon.createStatement();
rs = stmt.executeQuery("SELECT * FROM Catalog WHERE o_code="+order_code);
while (rs.next()) {
order_code = rs.getInt("o_code");
cust_code = rs.getInt("cust_code");
quantity = rs.getInt("quantity");
price = rs.getFloat("price");
name = rs.getString("name");
}
rs.toString();
rs.close();
stmt.close();
dbcon.close();
}
catch(SQLException e:) {
System.out.print("SQLException: ");
System.out.println(e.getMessage());
}
}
}
提前致谢!
答案 0 :(得分:2)
听起来“o_code”,“cust_code”,“quantity”或“price”在您的视图中没有正确别名,或者至少在结果集中没有包含它们(列没有正确别名)。
此外,如果您提供了更多信息,那将更有帮助...就像您的视图的结构(列类型,名称等)然后我们可以更清楚地了解正在发生的事情。