为什么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这纯粹是疯了,但是的,对我也有用,谢谢。。。“除了微软,还有谁?”