Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QSqlQuery.next()返回false,但数据库中有数据。为什么?_Qt_Sqlite - Fatal编程技术网

Qt QSqlQuery.next()返回false,但数据库中有数据。为什么?

Qt QSqlQuery.next()返回false,但数据库中有数据。为什么?,qt,sqlite,Qt,Sqlite,我的sqlite数据库中有数据。Insert语句已成功执行。但当我想从数据库中获取数据时,我什么也没发现,这个错误是“QSqlError”(“,”,“)”。我已检查我的查询是否处于活动状态且无效。如何解决这个问题 这是我的密码: void FindDialog::find() { QString roll_number = ui->txt_RN->text (); int roll = roll_number.toInt (); const QStrin

我的sqlite数据库中有数据。Insert语句已成功执行。但当我想从数据库中获取数据时,我什么也没发现,这个错误是“QSqlError”(“,”,“)”。我已检查我的查询是否处于活动状态且无效。如何解决这个问题

这是我的密码:

void FindDialog::find()
{

    QString roll_number = ui->txt_RN->text ();

    int roll = roll_number.toInt ();

    const QString findstmnt = "SELECT Roll_Number, Name FROM student_info WHERE Roll_Number = :roll";

    scon->getQuery ()->prepare (findstmnt);

    scon->getQuery ()->bindValue ("roll", roll);

    if(scon->getQuery ()->exec ()){

        qDebug() << "Active: " << scon->getQuery ()->isActive ();

        qDebug() << "Valid: " << scon->getQuery ()->isValid ();

        if(scon->getQuery ()->isActive ()){
            if(scon->getQuery ()->next ()){
                qDebug() << "Has Data: " << scon->getQuery ()->next ();
            } else {
                qDebug() << scon->getQuery ()->lastError ();
            }
        }

    } else {
        qDebug() << scon->getQuery ()->lastError ();
    }
void FindDialog::find()
{
QString roll_number=ui->txt_RN->text();
int roll=roll_number.toInt();
const QString findstmnt=“从学生信息中选择卷号、名称,其中卷号=:Roll”;
scon->getQuery()->prepare(findstmnt);
scon->getQuery()->bindValue(“滚动”,滚动);
if(scon->getQuery()->exec()){
qDebug()是活动的();
qDebug()是有效的();
if(scon->getQuery()->isActive()){
if(scon->getQuery()->next()){
qDebug()下一步();
}否则{
qDebug()getQuery()->lastError();
}
}
}否则{
qDebug()getQuery()->lastError();
}

参数的名称不是
roll
,而是
:roll

将值绑定到错误的参数名称时,实际参数的初始值为
NULL

因此,查询将永远找不到任何行,因为没有值与
NULL

进行比较。您缺少一个冒号,它应该是
bindValue(“:roll”,roll)
。谢谢,但我不明白问题出在哪里。看起来是一样的。抱歉。谢谢。我已连接此数据库。是否有数据:false QSqlQuery::value:未定位在有效记录上是否有数据:“”Active:true-Valid:false听起来像是一个完全无关的问题…对不起,先生,在重新编译后,我从数据库中没有得到任何值。我在更正后得到了这个值。数据库已连接。数据:false QSqlQuery::value:未定位在有效记录上的数据有:“Active:true-Valid:false”