使用数据库值填充 QTableWidget

Populating QTableWidget with database values

在我的 GUI 应用程序中,我想用来自 Oracle DB 的值填充 QTableWidget。我知道使用 QTableViewQSqlQueryModel 更简单。但是我想稍后逐项访问数据,因此我想使用 QTableWidget.

我已成功建立与我的 Oracle 数据库的连接,用于填充数据的代码片段是 --

QSqlQuery myquery("select SL_NO, NAME, AGE from EMPLOYEE");

ui->tableWidget->setColumnCount(myquery.record().count());
ui->tableWidget->setRowCount(myquery.size());

int index = 0;
while(myquery.next())
{
    ui->tableWidget->setItem(index,0,new QTableWidgetItem(myquery.value(0).toString()));
    ui->tableWidget->setItem(index,1,new QTableWidgetItem(myquery.value(1).toString()));
    ui->tableWidget->setItem(index,2,new QTableWidgetItem(myquery.value(2).toString()));
    index ++;
}

输出为--

我的代码有什么问题???我错过了什么???

我看到这种效果的唯一原因是 myquery.size() 在

ui->tableWidget->setRowCount(myquery.size());

returns 0 和 myquery.next() 总是 returns false。

如果 myquery.size() > 0 并且 myquery.value(0).toString() 会 return 空字符串,您仍然会看到空行。

所以我怀疑您的查询return是否如您所愿return。 使用一些 qDebugs 来验证您从数据库中获取的数据。