我想在访问表时显示列名行。在这里我尝试了这个代码......但只显示没有列名的表。 使用java eclipse和sqlite数据库
@Html.ValidationMessageFor(m => m.PostedFile)
@Html.ValidationMessageFor(m => m.FileName)
答案 0 :(得分:4)
您可以使用以下代码获取列名称:
ResultSetMetaData metaData = rs.getMetaData();
int count = metaData.getColumnCount(); // get column count
for (int i = 1; i <= count; i++){
System.out.println(metaData.getColumnLabel(i));
}
答案 1 :(得分:2)
ResultSet始终包含返回的行,但不包含列名。
要获取列名,您可以在代码下方使用。
ResultSetMetaData metadata = rs.getMetaData();
int columnCount = metadata.getColumnCount();
String column_names[] = new String[ columnCount ]; // define a array to store the column names
for (int i=0; i<=columnCount; i++) {
column_names[ i ] = metadata.getColumnLabel(i); // push column names into array
}
DefaultTableModel table_model = new DefaultTableModel( column_names, columnCount ); // create a table model based of the columns and column count
table=new JTable( table_model ); // create a new table with that model
答案 2 :(得分:1)
String column_i = table.getModel().getColumnName(i);
通过'i'迭代;因为它代表列的索引。 干杯!
答案 3 :(得分:0)
JScrollPane pane = new JScrollPane(table);
contentPane.add(table);
JscrollPane.add(table);
以上代码都很混乱:
首先使用表格创建一个滚动窗格(这是正确的),然后将表格添加到内容窗格(这是不正确的)。一个表只能有一个父表,因此它将从滚动窗格中删除。
然后您尝试将表格添加回滚动窗格,这将无效,因为您需要将表格添加到滚动窗格的viewport
,而不是直接添加到滚动窗格。
所以你需要的底线是:
JScrollPane pane = new JScrollPane(table);
//contentPane.add(table);
//JscrollPane.add(table);
编辑:
首先让代码在没有SQL的情况下运行。使用上述建议,然后更改您当前的代码:
//table.setModel(DbUtils.resultSetToTableModel(rs));
table.setModel( new DefaultTableModel(5,5) );
这应显示一个包含5行和5列的空表。
如果您看到该表,则问题出在您的SQL上,您将返回一个空的ResultSet。
如果您没有看到该表,那么您的代码中的其他位置就会出现问题。