Bonjour, j'essaie de faire une erreur lorsqu'il n'y a pas d'élève correspondant .... et qu'il s'affichera comme ceci No matching records found
et que je veux que le nom de la colonne soit toujours le même mais ne le sache toujours pas ... peut Quelqu'un me dit si c'est correct ??
Voici ma fonction pour cela ... et j'ajoute un commentaire là où j'ai mis l'erreur ... mais je ne sais pas comment obtenir le nom de la colonne
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());
}
}
J'essaie comme ça mais m'a quand même donné la valeur NULL !!! ce code est en dessous de 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]);
}
Essaye ça.
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++;
}
Puisque vous vous attendez ici à obtenir l'alias des colonnes au lieu du nom de la colonne, vous devez utiliser ResultSetMetaData.getColumnLabel au lieu de ResultSetmetaData.getColumnName.
Obtenir ResultSetMetaData
using ResultSet#getMetaData()
:
ResultSetMetaData meta = rs.getMetaData();
Et puis pour obtenir le nom de colonne de la 1ère colonne:
String col1Name = meta.getColumnLabel(1);
De même pour obtenir le nom de colonne de la 2ème colonne:
String col2Name = meta.getColumnLabel(2);
Obtenir les métadonnées
ResultSetMetaData metaData = rs.getMetaData();
Ensuite, vous pouvez faire:
String columnName = metaData.getColumnName(int index);
rs.getMetaData().getColumnName(int i);
et ne pas concatter le paramètre de requête!