所以我在这里有这个代码:
jTable
基本上我的代码所做的就是,当我双击ComboBox
时,它会自动填充TextFields
和MySQL
。但user_type
会发出错误,指出它找不到任何user_type
列名称。
如下所示,我证明它的列名为java.sql.SQLException: Column 'user_type' not found. error on the line usertype.setSelectedItem(getValue((Integer) rs.getObject("user_type"), "user_type"));
。
systemaccount table having user_type column
我总是得到
{{1}}
有关正在发生的事情的任何提示?
答案 0 :(得分:0)
尝试使用不同的列名(“user_type”除外)。
答案 1 :(得分:0)
创建对象数组。
ResultSet results = myStatement.executeQuery("SELECT * FROM systemaccount where ID = "+getValue);
ResultSetMetaData meta = results.getMetaData();
while (results.next()) {
Object[] data = new Object[meta.getColumnCount()];
for (int index = 1; index <= data.length; index++) {
data[index - 1] = results.getObject(meta.getColumnName(index));
System.out.println("Column " + index + " is named " + meta.getColumnName(index) + " having value " + data[index - 1]);
}
// fname.setText(data[0].toString());
...
}
答案 2 :(得分:0)
所以我现在有了这个答案哦,天哪,感觉像是一个世纪之后。
所以在@ SanjayChavan的代码片段的帮助下,我终于得到了代码。
int row = tbl_data.getSelectedRow();
Integer ID = (Integer) tbl_data.getModel().getValueAt(row, 0);
try {
rs = stmt.executeQuery("SELECT * FROM systemaccount where ID = "+ID);
ResultSetMetaData meta = rs.getMetaData();
Object[] data = new Object[meta.getColumnCount()];
while(rs.next())
{
for (int index = 1; index <= meta.getColumnCount(); index++) {
System.out.println("Column " + index + " is named " + meta.getColumnName(index));
data[index - 1] = rs.getObject(meta.getColumnName(index));
}
fname.setText((String) data[1]);
mname.setSelectedItem((String) data[2]);
lname.setText((String) data[3]);
address.setText((String) data[4]);
contact.setText((String) data[5]);
user.setText((String) getValue((Integer) data[6], "user"));
usertype.setSelectedItem(getValue((Integer)data[7], "usertype"));
}
}
catch (SQLException ex) {
Logger.getLogger(SystemAccount.class.getName()).log(Level.SEVERE, null, ex);
System.out.println(ex.getMessage());
}
}
这就是现在的样子。经过几个小时的测试。起初,我不会接受他的代码片段作为答案虽然它是有效的但由于没有.next()
函数访问函数的错误而无法接受。所以我所做的是将填充数据放在while循环中的数组中,这样它就不会像before start of ResultSet
那样出错,而且它会产生一个有效的错误。谢谢大家!!!!!