在我的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()



返回0,而myquery.next()始终返回false。

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

因此,我怀疑您的查询返回的是您希望返回的内容。
使用一些qDebugs来验证从数据库中获取的数据。

07-28 01:33