QT5框架中对sqlquery.exec(“SQL语句“)的返回值存在误解

 sqlquery.exec("............")的返回值为True或者Flase,但如果sql查询的结果集为空,系统会认为sql查询成功,返回True。只有sql语句存在语法错误或者数据库连接失效后才会返回Flase。

在具体的QT项目中,我的错误代码如下:

if(!sqlquery.exec(Str)){
    QMeessageBox::critial(this,"提示","查询失败!");
}
else{
     QMeessageBox::information(this,"提示","查询成功!");
}

在这里我的sql语句不存在语法错误,但无论有没有查询到数据都不会提示报错

正确的代码应该是:

sqlquery.exec(Str);
if(!sqlquery.next()){
    QMeessageBox::critial(this,"提示","查询失败!");
}
else{
     QMeessageBox::information(this,"提示","查询成功!");
}

你可能感兴趣的:(qt,c语言,sql)