Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175

    [JAVA+NETBEANS] scorrere i risultati di una query.

    Allora in NetBeans ho creato un jtextfield chiamato "edit" e un bottone "invia", che si connette a un DB ed esegue una query:

    codice:
    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {                                      
            initComponents();
            Connection con;
            Statement st;
            String query, conString;
            ResultSet rs;
            try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                conString="jdbc:odbc:localhost";
                con=DriverManager.getConnection(conString, "mariano", "password");
                st=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
    	    query="select * from articolo";
                rs = st.executeQuery(query);
                rs.next(); 
                while (!rs.isAfterLast()) {
                    edit.setText(rs.getString("Descrizione"));
                    rs.next();
                }
            } catch (Exception e) {
                System.out.println("Errore: "+e.getMessage());
            }
        }
    Il tutto funziona correttamente, e nel campo edit viene mostrato l'ultima riga della tabella.

    Ora la domanda è: siccome sto cercando di ampliare le funzioni di questo programmino, ho inserito i pulsanti, "vai avanti" e "vai indietro". Come faccio a far funzionare i 2 tasti, che codice devo inserire, e come devo modificare il codice che ho postato sopra?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    la cosa più semplice è guardare cosa offre la classe resultset
    http://java.sun.com/j2se/1.4.2/docs/...ResultSet.html

    ti devi posizionare all'inizio del rs con il metodo rs.first() subito dopo avere eseguiti la query
    e poi scorrerlo con il metodo next() finche ci sono elementi.


    codice:
    Connection con;
            Statement st;
            String query, conString;
            ResultSet rs;
    
    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {                                      
            initComponents();
            
            try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                conString="jdbc:odbc:localhost";
                con=DriverManager.getConnection(conString, "mariano", "password");
                st=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
    	    query="select * from articolo";
                rs = st.executeQuery(query);
    rs.first();           
    } catch (Exception e) {
                System.out.println("Errore: "+e.getMessage());
            }
        }


    all'interno dei metodi per i bottoni farai un cosa tipo questa:

    codice:
    while(rs.islast()!=true){
    rs.next();
    }
    nell'altro bottone andrà la stessa cosa solo con
    codice:
    rs.previous();

    dovrebbe funzionare nn l'ho testato

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    Funziona ora quando clicco il bottone "invia" nell'input box visualizza il primo record della tabella.
    Ora sui due pulsanti "avanti" e "indietro" ho questi codice:
    codice:
    // BOTTONE INDIETRO
    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
                try {
                    while(rs.isFirst()!=true) {
                        rs.previous();
                        edit.setText(rs.getString("Descrizione"));
                    }
                } catch (Exception e) {
                    System.out.println("Errore: "+e.getMessage());
                }
        }                                        
    
    //BOTTONE AVANTI
        private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                         
                try {
                    while(rs.isLast()!=true) {
                        rs.next();
                        edit.setText(rs.getString("Descrizione"));
                    }
                } catch (Exception e) {
                    System.out.println("Errore: "+e.getMessage());
                }           
        }
    Il problema è che se clicco avanti, dal primo va direttamente all'ultimo, e dall'ultimo direttamente al primo.
    E non riesco a capire perchè.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    Risolto
    codice:
    private void precedenteActionPerformed(java.awt.event.ActionEvent evt) {                                           
                try {
                    if (!rs.isFirst()) 
                        rs.previous(); 
                        edit.setText(rs.getString("Descrizione"));
                } catch (Exception e) {
                    System.out.println("Errore: "+e.getMessage());
                }
        }

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.