java.sql.SQLException:[Microsoft][Gestionnaire de pilotes ODBC] descripteur non Valide index

J'utilise le code suivant

try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = DriverManager.getConnection("jdbc:odbc:access");
    String sql = "Select * from table";
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery( sql );
    ResultSetMetaData md = rs.getMetaData();
    int columns = md.getColumnCount();
    for (int i = 1; i <= columns; i++) {
        columnNames.addElement( md.getColumnName(i) );
    }
    while (rs.next()) {
        Vector row = new Vector(columns);
        for (int i = 1; i <= columns; i++){
            row.addElement( rs.getObject(i) );
        }
        data.addElement( row );
    }
    rs.close();
    stmt.close();
}catch(Exception e){
    System.out.println(e);
}

Il affiche:

java.sql.SQLException:[Microsoft][ODBC Driver Manager] Invalid descriptor index

Comment est-il la cause et comment puis-je le résoudre?

À quelle ligne exactement est-il jeté? Vous pouvez trouver le numéro de la ligne dans la 1ère ligne de la stacktrace. L'exception suggère que vous tentez d'accéder à un faux/inconnu colonne dans le jeu de résultats. Mais l'extrait de code dans votre question ne donne pas que de là.
Merci pour la mise à jour du code. Mais la gestion des exceptions est très pauvre. Remplacer que System.out.println(e) ligne par e.printStackTrace() ou tout simplement throw e. De cette façon, vous obtenez le plein stacktrace et vous pouvez en apprendre davantage sur le numéro de la ligne où ce problème s'est produite.

OriginalL'auteur Tepken Vannkorn | 2011-06-15