在我的GUI应用程序中,我想用Oracle DB中的值填充QTableWidget
。我知道使用QTableView
和QSqlQueryModel
更容易。但是我想稍后逐项访问数据,因此我想使用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来验证从数据库中获取的数据。