Hallo,
habe ein großes Problem, und zwar soll ein JTable mit Daten aus einer Datenbank gefüllt werden (funktioniert super), jetzt möchte ich den Spaltenköpfen im JTable aber neue Namen geben und nichts funktioniert mehr bzw. folgender Fehler kommt: java.sql.SQLException: Column not found
Jetzt würde ich gerne anstelle von
z. B. neue Namen für die Spaltenköpfe im JTable vergeben, wenn ich das so mache bekomme ich die oben besagte Fehlermeldung:
Also muss anscheinend in der SELECT Anweisung und in SpaltenNamen[] jeweil der gleiche Wert/Name stehen?
Wie mache ich es das ich im JTable andere Spaltennamen vergebe?
habe ein großes Problem, und zwar soll ein JTable mit Daten aus einer Datenbank gefüllt werden (funktioniert super), jetzt möchte ich den Spaltenköpfen im JTable aber neue Namen geben und nichts funktioniert mehr bzw. folgender Fehler kommt: java.sql.SQLException: Column not found
Code:
class MyTableModel extends AbstractTableModel{
private Connection con = null;
Statement stmt = null;
public void init(){
String filename = MyMain.filename;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(
"jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb);DBQ="+filename);
} catch (Exception e){
System.err.println(e);
new DBfehltDialog();
System.out.println("Gibts nicht!!!!");
}
}
public String SpaltenNamen[] = {"Eigenschaft", "Wert", "Materialname", "Firmenname", "Materialfarbe", "Nr"};
public Vector Spalten[] = {new Vector(), new Vector(), new Vector(), new Vector(), new Vector(), new Vector()};
public void fetchData(){
try{
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery ("SELECT Eigenschaft, Wert, Materialname, Firmenname, Materialfarbe, Nr FROM test");;
while (rs.next()){
for (int i = 0; i < SpaltenNamen.length; i++)
Spalten[i].addElement (rs.getString (SpaltenNamen[i]));
}
stmt.close();
} catch (SQLException e){
System.err.println("Was soll ich jetzt machen?");
System.err.println(e);
new DBfehltDialog();
}
}
public String getColumnName(int colum){
return SpaltenNamen[colum];
}
public int getColumnCount(){
return SpaltenNamen.length-1; //-1 da die letzte Spalte PK, Nr, nicht angezeigt werden soll
}
public int getRowCount(){
return Spalten[0].size();
}
public boolean isCellEditable(int row, int col){
return false;
}
public Object getValueAt(int row, int col){
return Spalten[col].elementAt(row);
}
public void setRowSelectionAllowed(boolean status){
status = false;
}
public void setCellSelectionEnabled(boolean status){
status = false;
}
public void setSelectionMode (int modus){
setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
}
}
Code:
public String SpaltenNamen[] = {"Eigenschaft", "Wert", "Materialname", "Firmenname", "Materialfarbe", "Nr"};
Code:
public String SpaltenNamen[] = {"Species", "Value", "Materialname", "Company name", "Color", "No"};
Also muss anscheinend in der SELECT Anweisung und in SpaltenNamen[] jeweil der gleiche Wert/Name stehen?
Wie mache ich es das ich im JTable andere Spaltennamen vergebe?