Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Caricare Array bidimensionale

    salve devo caricare un array bidimensionale, con i record di un database, per costruire una tabella, ho implementato questo script;

    Object columnNames[] = { "campo1", "campo2", "campo3", "campo4", "campo5", "campo6"};// definito nome dei campi
    Object rowData[][]= new Object[6][6];
    // per adesso ho fissato il careicamento in 6 righe di 6 colonne
    // caricamento tabella
    int r;
    r=rsmd.getColumnCount();// determino il numero di campi

    int conta = 1;
    int fisso = 1;
    // ciclo while
    while(ConnettiDb.rslt.next()){

    // popolare l'array rowdata

    for(int j=0;j<=r; j++){
    rowData[conta][j]=rslt.getString(j);
    conta = conta + fisso;

    }

    }// fine While

    rslt.close();

    JTable tabella = new JTable(rowData, columnNames);
    JScrollPane sPane = new JScrollPane(tabella);

    il problema è che non gira pèotete aiutarmi
    saluti Roberto

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

    Re: Caricare Array bidimensionale

    Originariamente inviato da RobertoBel
    for(int j=0;j<=r; j++){
    rowData[conta][j]=rslt.getString(j);

    il problema è che non gira
    Negli array l'indice iniziale è 0, quindi è giusto [j]. Ma per i getXXX() di ResultSet che ricevono un indice, la prima colonna è 1 ... non 0!

    E il conta deve partire da 0 ... non 1. Lo ripeto: gli indici di array partono da 0, le colonne di un ResultSet da 1.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    caricare array bidimensionale

    ciao, grazie comunque per la risposta, ho modificato cosi il mio script


    // costruzione tabella definizione array
    Object columnNames[] = { "IDPogressivo", "Tipo", "Data Incidente", "Descrizione Accaduto", "Partecipanti", "Note"};
    Object rowData[][]= new Object[6][7]; // ho impostato 6 e 7 per mia comodità

    // fine costruzione tabella
    // caricamento tabella
    int r;
    r=ConnettiDb.rsmd.getColumnCount();
    int conta = 0;
    int fisso = 1;

    while(ConnettiDb.rslt.next()){
    // popolare l'array rowdata
    for(int j=0;j<=r; j++){

    for(int i=1; i<=r; i++){
    rowData[conta][j]=ConnettiDb.rslt.getString(i);
    // conta carica le righe del database
    // j carica i campi del record
    // i sono i vari campi del record

    }//fine for i

    conta = conta + fisso;
    }// fine for j

    }// fine While
    ConnettiDb.rslt.close();

    JTable tabella = new JTable(rowData, columnNames);
    JScrollPane sPane = new JScrollPane(tabella);
    scatola.add(sPane);

    il problema è che non gira, ho verificato la connessione, ed è conneso, riesci a vedere qualche problema.
    saluti Roberto

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

    Re: caricare array bidimensionale

    Originariamente inviato da RobertoBel
    il problema è che non gira, ho verificato la connessione, ed è conneso, riesci a vedere qualche problema.
    Il problema è che così l'hai fatto pure peggio di prima ....
    Ah ... in ConnettiDb.rslt.next() 'rslt' cosa è? Una variabile "di classe" (static) e oltretutto public di ConnettiDb?? Allora il "design" fa un po' acqua!! Perché vuol dire che non hai incapsulato e gestito bene le cose.

    Comunque nel while serve 1 solo ciclo for ... non due innestati!!
    Hai il numero di colonne mettiamo nella variabile 'numColonne' e hai una variabile 'riga'. Ok?

    codice:
    riga = 0;
    
    while (tuoResultSet.next()) {
        for (int colonna = 0; colonna < numColonne; colonna++) {
            rowData[riga][colonna] = tuoResultSet.getString(colonna+1);
        }
    
        riga++;
    }
    Tutto qui.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.