Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Ricerca sql

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158

    Ricerca sql

    Ciao a tutti sto facendo un metodo che mi filtri il database e che mi aggiorni la jtable con i risultati ma non mi fa apparire la ricerca


    codice:
    public void ricerca(){
    	
    	
    	try{
            String dataa = ((JTextField)date_a_data.getDateEditor().getUiComponent()).getText();
            String datada = ((JTextField)date_da_data.getDateEditor().getUiComponent()).getText();
            String sql = "SELECT * FROM Buste WHERE (operatore = ?) AND (data BETWEEN ? AND ?)";
           
                 
             pst=conn.prepareStatement(sql);
             pst.setString(1, combo_op.getSelectedItem().toString());// Prendo il valore della combobox
             
            
            try{  
               
                SimpleDateFormat format = new SimpleDateFormat ("dd-MM-yyyy");
                format.setLenient(false);//obbliga il controllo 
                format.parse(datada);//fa il controllo se effettivamente è il formato inserito correttamente
    
    
               pst.setString(2,datada);
               format.parse(dataa);
               pst.setString(3,dataa);
               
    
               rs=pst.executeQuery();
               
               ResultSetMetaData rsmd = rs.getMetaData();
               int numColonne = rsmd.getColumnCount();
               
               Vector <Vector> datiRighe = new Vector <Vector>();
               while (rs.next()){
                      Vector<Object> riga = new Vector<Object>(); 
                      for (int nr=0; nr<numColonne; nr++) {
                          riga.add(rs.getObject(nr+1));
                      }
               datiRighe.add(riga);
               }
               
               
               Vector<String> nomeColonne = new Vector<String>();
               //for (int nr=0; nr<numColonne; nr++)
                      nomeColonne.add("Codice");
               		nomeColonne.add("CodiceBusta");
                      nomeColonne.add("Prezzo costo");
                      nomeColonne.add("Prezzo");
                      nomeColonne.add("Data");
                      nomeColonne.add("Operatore");
                      
                      
                      DefaultTableModel tabModel= new DefaultTableModel(datiRighe,nomeColonne);
                      tabella_busta.setModel( tabModel);
                      
                      
               
               
    
    //
    //           sv.somma_Colonna_tabella(tabella_busta, 2, txt_costo);
    //           sv.somma_Colonna_tabella(tabella_busta, 3, txt_pPubblico);
    //
    //           float gLordo = (Float.valueOf(txt_costo.getText()) - Float.valueOf(txt_costo.getText()));
    //           txt_guaLordo.setText(String.valueOf(gLordo));
    //           
       
    
    
               }catch(ParseException e) {   
                   JOptionPane.showMessageDialog(null, "Inserire formato data corretto gg-mm-aaaa");
    
                   }
            
    //                     Blocco per le statistiche prendo i valori del compenso da copensoOp e li confronto
    //                con le date del filtro
    //          try{
    //                
    //                String sql2 = "SELECT * FROM CompensoOp WHERE(nome=?) AND (compenso ) AND(data BETWEEN ? AND ?)";
    //                pst = conn.prepareStatement(sql2);
    //                pst.setString(1, combo_op.getSelectedItem().toString());
    //                pst.setString(2,datada);
    //                pst.setString(3,dataa);
    //                
    //                rs=pst.executeQuery();
    //                
    //               ArrayList <String> result = new ArrayList<String>();
    //                
    //                
    //              while(rs.next()){
    //                  result.add( rs.getString("compenso") );
    //
    //                   }
    //              float somma = 0;
    //              for (int i=0; i <result.size(); i++)
    //                   {
    //                    somma = somma + Float.parseFloat(result.get(i));
    //                    
    //                   }
    //              System.out.println(somma);
    //                    }catch(Exception e){
    //
    //                    }        
    
            /*  try{
             * 
             * float gNetto = Float.valueOf(txt_guaLordo.getText()) - Float.valueOf(txt_compOp.getText());
             * 
             * txt_guaNetto.setText(String.valueOf(gNetto));
             * 
             * }catch(Exception   e){
             * JOptionPane.showMessageDialog(null, "Inserire il compenso operatore");
             * }
             */
                
               
    
                 }catch(Exception   e){
    
                 JOptionPane.showMessageDialog(null,e);
                 
                 
           }
      
    	
    }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Ricerca sql

    Originariamente inviato da Nio74
    Ciao a tutti sto facendo un metodo che mi filtri il database e che mi aggiorni la jtable con i risultati ma non mi fa apparire la ricerca
    E cosa vuol dire?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Ricerca sql

    Originariamente inviato da Nio74
    codice:
            String dataa = ((JTextField)date_a_data.getDateEditor().getUiComponent()).getText();
            String datada = ((JTextField)date_da_data.getDateEditor().getUiComponent()).getText();
    
               pst.setString(2,datada);
               pst.setString(3,dataa);
    I due parametri usati per il BETWEEN della data sono delle stringhe, nel formato "dd-MM-yyyy".
    Sei sicuro che il BETWEEN funzioni: a) con stringhe, b) nel formato "dd-MM-yyyy"?

    Io non ci metterei proprio la mano sul fuoco ...

    P.S. a questo punto chiederai: cosa fare? Passare dei java.sql.Date a PreparedStatement.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Ma non avevi già avuto un problema analogo?
    http://forum.html.it/forum/showthrea...readid=1551576
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158
    Originariamente inviato da Alex'87
    Ma non avevi già avuto un problema analogo?
    http://forum.html.it/forum/showthrea...readid=1551576
    allora si ma utilizzavo una libreria esterna "rs2xml.jar"(tabella_busta.setModel(DbUtils.result SetToTableModel(rs)); ) che si arrangiava per i risultati (Ma mi rompeva riutilizzarla perchè ora ho riscritto tutta la mia applicazione a mano senza l'aiuto di netbeans per quanto riguarda la parte grafica) e volevo appunto fare tutto senza di essa perchè mi rompeva le scatole non sapere come facesse a riempirla.Ora che sono riuscito a riempirla senza di essa con questo metodo


    codice:
    private void Update_tab_Busta(){
    	
    	 try {
                 String sql=  "select * from Buste";
                 pst = conn.prepareStatement(sql);
                 rs = pst.executeQuery();
                 
                    	    
                 ResultSetMetaData rsmd = rs.getMetaData();
                 int numColonne = rsmd.getColumnCount();
                 Vector<String> nomeColonne = new Vector<String>();
                 //for (int nr=0; nr<numColonne; nr++)
                        nomeColonne.add("Codice");
                 		nomeColonne.add("CodiceBusta");
                        nomeColonne.add("Prezzo costo");
                        nomeColonne.add("Prezzo");
                        nomeColonne.add("Data");
                        nomeColonne.add("Operatore");
    
    
                 
                 Vector <Vector> datiRighe = new Vector <Vector>();
                 while (rs.next()){
                        Vector<Object> riga = new Vector<Object>(); 
                        for (int nr=0; nr<numColonne; nr++) {
                            riga.add(rs.getObject(nr+1));
                        }
                 datiRighe.add(riga);
                 }
    
                 DefaultTableModel tabModel= new DefaultTableModel(datiRighe,nomeColonne);
                 tabella_busta.setModel( tabModel);
                 
                 
    				 } catch (SQLException e) {
                 JOptionPane.showMessageDialog(null, e);
                 
             }



    I due parametri usati per il BETWEEN della data sono delle stringhe, nel formato "dd-MM-yyyy".
    Sei sicuro che il BETWEEN funzioni: a) con stringhe, b) nel formato "dd-MM-yyyy"?

    X Andbin sono sicuro si funziona con le stringhe

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158



    Ragazzi Sono Scemo io il metodo funziona OPS caricavo un'altro metodo nel pulsante

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.