C++ 未定位在有效记录上
我是新来的 我的应用程序有问题。 这是我的代码:C++ 未定位在有效记录上,c++,sql,qt,C++,Sql,Qt,我是新来的 我的应用程序有问题。 这是我的代码: voidDialog::on_tableView_activated(constQModelIndex&index) { QString valu=ui->tableView->model()->data(index).toString(); QSqlQuery qryview; qryview.prepare("SELECT* FROM employ where nomper='"+valu+"
voidDialog::on_tableView_activated(constQModelIndex&index)
{
QString valu=ui->tableView->model()->data(index).toString();
QSqlQuery qryview;
qryview.prepare("SELECT* FROM employ where nomper='"+valu+"' or prenomper='"+valu+"'");
ui->lineEdit_2->setText(qryview.value(0).toString());
ui->lineEdit_3->setText(qryview.value(1).toString());
}
我想在QLineEdit
中恢复数据
当我使用SQLite时,没有问题。
但当我使用MySQL时,lineEdit中不会显示任何结果
qsqlquery::值:未定位在有效记录上
问题是您试图在不初始化行的情况下检索该行。正确的方法是使用query.next(),下面是代码示例:
QString valu=ui->tableView->model()->data(index).toString();
QSqlQuery qryview;
qryview.prepare("SELECT* FROM employ where nomper='"+valu+"' or prenomper='"+valu+"'");
qryview.exec();
while(qryview.next()) {
ui->lineEdit_2->setText(qryview.value(0).toString());
ui->lineEdit_3->setText(qryview.value(1).toString());
}
如果不打印lastQueryError并查看查询是否正确执行,这应该是可行的 我认为
SQLite
会立即执行查询,因为它只支持prepare()
中的一条语句。。因此,对于MySQL,尝试在prepare()