使用数据库值填充 QTableWidget
Populating QTableWidget with database values
在我的 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() 在
ui->tableWidget->setRowCount(myquery.size());
returns 0 和 myquery.next() 总是 returns false。
如果 myquery.size() > 0 并且 myquery.value(0).toString() 会 return 空字符串,您仍然会看到空行。
所以我怀疑您的查询return是否如您所愿return。
使用一些 qDebugs 来验证您从数据库中获取的数据。
在我的 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() 在
ui->tableWidget->setRowCount(myquery.size());
returns 0 和 myquery.next() 总是 returns false。
如果 myquery.size() > 0 并且 myquery.value(0).toString() 会 return 空字符串,您仍然会看到空行。
所以我怀疑您的查询return是否如您所愿return。 使用一些 qDebugs 来验证您从数据库中获取的数据。