标题:QTableWidgetItem使用mysql语句查询问题
作者:q洁士铭
日期:2016-04-10 00:13
内容:
void MainWindow::listbutton_chick ()
{
this->db = QSqlDatabase::addDatabase("QMYSQL");
this->db.setHostName("localhost");//127.0.0.1 192.168.78.23
this->db.setUserName("root");
this->db.setPassword("123456");
this->db.setDatabaseName("student");
bool ok = db.open();
int row = 0;
int column = 0;
int count = 0;
QSqlQuery *query = new QSqlQuery;
query->exec ("select * from information");
if(ok)
{
while(query->next ())
{
count = count+1;
}
ui->tableWidget->setRowCount (count);
ui->tableWidget->setColumnCount (count);
for(int i=0 ; itableWidget->setItem(row , column , new QTableWidgetItem(query.value (0).toString ())); //为什么这里不能查询到数据库里的数据,数据库连接时正常的???
ui->tableWidget->setItem(row , column+1 , new QTableWidgetItem(query.value (0).toString ()));
ui->tableWidget->setItem(row , column+2 , new QTableWidgetItem(query.value (0).toString ()));
&nbs ..
#1 [15927174837 04-10 15:57]
数据库里的数据是匹配的吗
#2 [robinsonsir 04-11 10:34]
写的有问题。。。。
while(query->next ())
{
count = count+1;
}
这里已经到最后一个数据的下一个了。
建议:
int count = query.size();
ui->tableWidget->setRowCount (count);
ui->tableWidget->setColumnCount (count);
while(query->next ())
{
ui->tableWidget->setItem(row , column , new QTableWidgetItem(query.value (0).toString ()));
ui->tableWidget->setItem(row , column+1 , new QTableWidgetItem(query.value (0).toString ()));
ui->tableWidget->setItem(row , column+2 , new QTableWidgetItem(query.value (0).toString ()));
row++;
column=0;
}
#3 回 15927174837 的帖子 [q洁士铭 04-13 15:45]
15927174837:数据库里的数据是匹配的吗(2016-04-10 15:57)
是匹配的,单独输出SQL语句是可以的
#4 回 robinsonsir 的帖子 [q洁士铭 04-13 15:48]
robinsonsir:写的有问题。。。。
while(query->next ())
{
count = count+1;
}
.......(2016-04-11 10:34)
可是现在问题是ui->tableWidget->setItem(row , column , new QTableWidgetItem(query.value (0).toString ()));语句里的SQL语句执行不了;如果换成的字符串就可以
#5 回 q洁士铭 的帖子 [robinsonsir 04-14 09:22]
q洁士铭:
可是现在问题是ui->tableWidget->setItem(row , column , new QTableWidgetItem(query.value (0).toString ()));语句里的SQL语句执行不了;如果换成的字符串就可以
while(query->next ())
{
count = count+1;
}
这里执行完,QSqlQuery::value: not positioned on a valid record,此时query已经指向了一条无效的记录了。
这样写试过了吗?int count = query.size();