Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [JAVA] Result set ????

  1. #1
    Utente di HTML.it L'avatar di userfra
    Registrato dal
    Jul 2001
    Messaggi
    1,418

    [JAVA] Result set ????

    Ciao a tutti, io ho creato una JComboBox, dove i valori di questa sono i records di una tabella, funziona tutto, solo che SQL mi restituisce questo messaggio: "SQL ERROR: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Stato del cursore non valido.". Perché, e come posso risolvere il problema?

    Questo è il codice
    int count =0;
    try{
    Class.forName(class_driver);
    }catch(java.lang.Exception exc){
    System.out.println("Class Driver ERROR " + exc.toString());
    }
    try{
    DBConnection = DriverManager.getConnection(url_connect1);
    statement = DBConnection.createStatement();
    rsQuery = statement.executeQuery("SELECT count(*) AS ID from tabella");
    rsQuery.next();
    count = rsQuery.getInt(1);
    rsQuery.close();
    statement.close();
    items_indici = new String[countIndici];
    statement2 = DBConnection.createStatement();
    rsQuery2 = statement2.executeQuery("SELECT nome from tabella2 order by nome");
    for(int z=0; z<=count; z++){
    rsQuery2.next();
    items_[z] = rsQuery2.getString(1);
    }
    rsQuery2.close();
    statement2.close();
    DBConnection.close();
    }catch(java.sql.SQLException exc){
    System.out.println("SQL ERROR: " + exc.toString());
    }
    recordPresenti = new JComboBox(items_);
    -------------------------------------------------
    Il fumo nuoce gravemente alla salute

  2. #2
    dvx80
    Guest
    a occhio l'unico cosa che puo darti quell'errore è questa
    codice:
    for(int z=0; z<=count; z++){ 
       rsQuery2.next(); 
       items_[z] = rsQuery2.getString(1); 
    }
    modificalo cosi.

    codice:
    int i=0;
    while(rsQuery2.hasNext()){
      items_[i] = rsQuery2.getString(1); 
      i++;
    }
    Ti da errore xchè cacendo il for vai oltre le righe trovate nel ResultSet. Facendo cosi le scorri tutte e non vai oltre. Prova.....

  3. #3
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Piuttosto che usare un for io utilizzerei un while del tipo:
    int z = 0;
    while( rsQuery2.next() )
    items_[z] = rsQuery2.getString(1);
    z++;
    }
    Di solito faccio così e mi va sempre bene....oppure:
    recordPresenti = new JComboBox();
    int z = 0;
    while( rsQuery2.next() )
    recordPresent.addItem( rsQuery2.getString(1) );
    }
    Ciaooo

  4. #4
    Utente di HTML.it L'avatar di userfra
    Registrato dal
    Jul 2001
    Messaggi
    1,418
    grazie mille a tutti





    alla prossima
    -------------------------------------------------
    Il fumo nuoce gravemente alla salute

  5. #5
    è un problema di logica, invece:
    prima prendi il numero di record presenti nella tabella col "select count(*)", poi invece selezioni il nome da un'altra tabella

    solo che non è detto che i due numeri siano coincidenti, quindi potresti andare oltre il numero di record effettivi selezionati

    come ti hanno detto meglio che utilizzi un ciclo for
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.