在我的swt表上获取数据库表结果集

时间:2013-08-02 08:52:09

标签: java jdbc swt

我是SWT的新手,我需要使用它的表格小部件。我想将查询发送到我的数据库并创建一个表。 setText()函数只接受一个新的字符串数组或一个字符串,我应该怎么做才能显示我的行,尽管列数。这是我的代码:

try{

ResultSet getTable=dbconnect.connect.createStatement().executeQuery("select * from Status");
ResultSetMetaData md = getTable.getMetaData();
int columns = md.getColumnCount();
for (int i = 1; i <= columns; i++) {
tblclmnNewColumn = new TableColumn(table, SWT.NONE);
tblclmnNewColumn.setWidth(100);
tblclmnNewColumn.setText(md.getColumnName(i));
columnNames.add( md.getColumnName(i));

}

for(int i=0;i<columnNames.size();i++){
String set;
if(i==columnNames.size()-1){
set="getTable.getString"+"("+'"'+columnNames.get(i)+'"'+")";
}else{                  
set="getTable.getString"+"("+'"'+columnNames.get(i)+'"'+")"+",";
                    }
columsresultset.add(set);
element[i]=columsresultset.get(i);

System.out.println(columsresultset.get(i)); 
                }
String elements[]=new String[columsresultset.size()];
while (getTable.next()) {
TableItem tableItem =(TableItem) new TableItem(table, SWT.NONE);
tableItem.setText(elements);                         
}

1 个答案:

答案 0 :(得分:1)

如何使用setText(yourDatabaseColumnIndex - 1, yourDatabaseColumnValue)。当然,您必须创建TableColumn,就像在代码中一样。例如:

while(resultSet.next())
{
    TableItem tableItem = new TableItem(table, SWT.NONE);
    for(int i = 1; i <= resultSet.getMetaData().getColumnCount(); i++)
    {
        tableItem.setText(i-1, resultSet.getString(i));
    }
}

不保证我没有错过任何;{;-)。您还可以通过将列计数写入变量来优化这一点。