Hvordan får man data fra et tabel i Access ind i en JList i Java
Jeg er ved at programmere et program i JAVA der skal behandle persondata. Jeg har nu koblet programmet sammen med en ACCESS database og vil nu gerne have alle records/posterne ind i en JList så jeg kan vælge personer herfra.
Dataen befinder sig i et table der hedder patient og det er 2 kolonner med henholdsvis fornaven og efternavne, som jeg skal bruge herfra.
Jeg er i tvivl om hvordan man laver en program struktur der henter alle posterne fra databasen og en efter en smider ("efternavn","fornavn") ind i en JList, hvorfra jeg så kan vælge dem.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Ja det forstår jeg heller ikke.. Jeg ville vælge at ligge dem i en JTable eller en JFrame for sig selv kan evt. gøres sådan:
static TableModel asTableModel(final ResultSet rs) throws SQLException { final Vector columnNames = new Vector(); final Vector rowData = new Vector();
final ResultSetMetaData rsMeta = rs.getMetaData(); for (int i = 1; i <= rsMeta.getColumnCount(); i++) { columnNames.addElement( rsMeta.getColumnName(i) ); }
while ( rs.next() ) { final Vector row = new Vector(); for (int i = 1; i <= rsMeta.getColumnCount(); i++) { row.addElement( rs.getObject(i) ); } rowData.addElement( row ); } return new DefaultTableModel(rowData, columnNames); }
Nu har jeg endelig fået data fra min database ind i en JList. Og hver element i min "vectorliste" der vises i JListen, viser data fra 3 kolonner ved hver records. Dette er helt perfekt.
Nu vil jeg så gerne have det lavet sådan at når jeg trykker på et element i JListen kaster den et actionEvent der søger databasen igennem efter denne record og viser dataene i textfields.
Problemet er bare at jeg skal isolere data fra den første row for at søge og hver element i vector listen består af data fra 3 rows ? Hvordan isolerer jeg det ? Kan jeg lave hver element om til strings - og hvad sker der så hvis jeg bare skal bruge data fra den første row (som forresten er et CPR nummer)...
Her er min kode - uden TextFields og Find-funktion.
for ( int i = 2; i <= rsmd.getColumnCount(); ++i ) if (i <= 4) { switch( rsmd.getColumnType( i ) ) { case Types.VARCHAR: currentRow.addElement( rs.getString( i ) ); break; case Types.INTEGER: currentRow.addElement( new Long( rs.getLong( i ) ) ); break; default: System.out.println( "Type was: " + rsmd.getColumnTypeName( i ) ); }}
public static void main( String args[] ) { final TableDisplay app = new TableDisplay();
app.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent e ) { app.shutDown(); System.exit( 0 ); } } ); } }
Håber en venlig sjæl kan hjælpe mig
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.