为什么SQLException:[Microsoft][ODBC SQL Server驱动程序]描述符索引和toString无效
我有以下程序,其中用户必须给出订单代码,以便获得客户及其订单的数据。我在数据库中创建了一个名为为什么SQLException:[Microsoft][ODBC SQL Server驱动程序]描述符索引和toString无效,sql,sql-server,user-input,sqlexception,jdbc-odbc,Sql,Sql Server,User Input,Sqlexception,Jdbc Odbc,我有以下程序,其中用户必须给出订单代码,以便获得客户及其订单的数据。我在数据库中创建了一个名为Catalog的视图,其中包含了所需的所有数据。但是当我运行我的程序时,我得到以下错误SQLException:[Microsoft][ODBC-SQL-Server-Driver]无效的描述符索引。是因为风景吗?或者我的代码有问题?我还想知道rs.toString()是打印结果的正确功能 public class Orders { public static void main(String[
Catalog
的视图,其中包含了所需的所有数据。但是当我运行我的程序时,我得到以下错误SQLException:[Microsoft][ODBC-SQL-Server-Driver]无效的描述符索引
。是因为风景吗?或者我的代码有问题?我还想知道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());
}
}
}
提前谢谢 听起来好像“o_代码”、“客户代码”、“数量”或“价格”在您的视图中没有正确的别名,或者至少它们没有包括在您的结果集中(列的别名没有正确)
另外,如果你提供多一点信息,它会更有用。。。与视图的结构(列类型、名称等)类似,我们可能会更清楚地了解当前情况。创建视图目录作为选择订单。o_代码、订单。客户代码、名称、价格、组成。订单数量、客户、产品、,包括订单。客户代码=客户。客户代码和订单。o代码=包括。o代码和组成。产品代码=产品。产品代码是的。我很抱歉!我发表了我的观点作为对我问题的评论。但是化名似乎没问题…我没有理由这么说,但这只是一种预感。。。能否尝试按select语句中显示的顺序获取字段?i、 e.rs.GetString(“name”),然后是rs.getFloat(“price”),然后是rs.getInt(“quantity”)。@Tomás这纯粹是疯了,但是的,对我也有用,谢谢。。。“除了微软,还有谁?”