Hallo ich versuche einen fehler zu machen, wenn es keinen passenden schüler gibt ... Und es wird so angezeigt No matching records found
und ich will den spaltennamen immer noch den gleichen aber immer noch nicht herausfinden ... jemand sagt mir, ob das stimmt?
Hier ist meine Funktion dafür ... und ich füge dort einen Kommentar hinzu, wo ich den Fehler eingebe ... aber ich weiß nicht, wie man den Spaltennamen erhält
public void SearchTableStudent() {
String tempSearchValue = searchStudent.getText().trim();
boolean empty = true;
sql = "SELECT student_id as 'Student ID',"
+ "concat(lastname, ' , ', firstname, ' ', middlename) as 'Name'"
+ "FROM user "
+ "WHERE CAST(student_id as CHAR) LIKE '%" + tempSearchValue + "%'";
try {
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
while(rs.next()) {
table.setModel(DbUtils.resultSetToTableModel(rs));
empty = false;
}
if(empty) {
String error = "";
table.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{"No matching records found",null}
},
new String [] {
/** I WANT TO PUT THE SAME COLUMN NAME ON MY DATABASE SELECTED BUT DON't Know
WHAT FUNCTION TO DO*/
}
));
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
Ich versuche es so, gab mir aber NULL !!! Dieser Code befindet sich unterhalb von empty = false;
for(int i=0; i<table.getColumnCount(); i++) {
test[i] = table.getColumnName(i);
}
ResultSetMetaData metaData = resultSet.getMetaData();
int count = metaData.getColumnCount(); //number of column
String columnName[] = new String[count];
for (int i = 1; i <= count; i++)
{
columnName[i-1] = metaData.getColumnLabel(i);
System.out.println(columnName[i-1]);
}
Versuche dies.
ResultSetMetaData meta = resultset.getMetaData();
Integer columncount = meta.getColumnCount();
int count = 1 ; // start counting from 1 always
String[] columnNames = new String[columncount];
while(count<=columncount){
columnNames [count-1] = meta.getColumnLabel(count);
count++;
}
Da hier erwartet wird, dass Sie den Spaltenalias anstelle des Spaltennamens erhalten, müssen Sie ResultSetMetaData.getColumnLabel anstelle von ResultSetmetaData.getColumnName verwenden.
Holen Sie sich ResultSetMetaData
mit ResultSet#getMetaData()
:
ResultSetMetaData meta = rs.getMetaData();
Und dann den Spaltennamen der 1. Spalte zu erhalten:
String col1Name = meta.getColumnLabel(1);
Ähnlich, um den Spaltennamen der 2. Spalte abzurufen:
String col2Name = meta.getColumnLabel(2);
Holen Sie sich die Metadaten
ResultSetMetaData metaData = rs.getMetaData();
Dann können Sie tun:
String columnName = metaData.getColumnName(int index);
rs.getMetaData().getColumnName(int i);
und den Abfrageparameter nicht verketten!