QT 使用QSqlQuery时候的 错误,。。。。
16lz
2021-01-22
最近刚接触QT的数据库这一块写了一小段代码,但一直出现QSqlError("","Parametercountmismatch","")和QSqlError("","Unabletofetchrow","Noquery")的错误,在网上找是说参数计数不匹配。。但自己找了很久发现对应参数都是对的请教一下大神们,,,,
query.exec("CREATETABLEplayers("
"idINTEGERPRIMARYKEY,"
"nameTEXTNOTNULL,"
"passwordTEXTNOTNULL,"
"stateINTEGERNOTNULL)");
query.prepare("SELECTMAX(id)FROMplayers");
if(!query.exec())
{
qDebug()<<query.lastError();//--------->QSqlError("","Unabletofetchrow","Noquery")
}
else
{
while(query.next())
{
maxid=query.value(0).toInt();
qDebug()<<maxid;
}
}
query.prepare("SELECT*FROMplayers"
"WHEREname=:name");
query.bindValue(":name",ch1);
query.exec();
if(!query.exec())
{
qDebug()<<query.lastError();//--------->QSqlError("","Parametercountmismatch","")
qDebug()<<"1";
}
else
当我换了个写法后
QStringsql="SELECT*FROMplayers(name)values(%1)";
query.prepare(sql.arg(ch1));
这时候错误又由QSqlError("","Parametercountmismatch","")变成了QSqlError("","Unabletofetchrow","Noquery")
实在被这个弄得云里雾里==
query.exec("CREATETABLEplayers("
"idINTEGERPRIMARYKEY,"
"nameTEXTNOTNULL,"
"passwordTEXTNOTNULL,"
"stateINTEGERNOTNULL)");
query.prepare("SELECTMAX(id)FROMplayers");
if(!query.exec())
{
qDebug()<<query.lastError();//--------->QSqlError("","Unabletofetchrow","Noquery")
}
else
{
while(query.next())
{
maxid=query.value(0).toInt();
qDebug()<<maxid;
}
}
query.prepare("SELECT*FROMplayers"
"WHEREname=:name");
query.bindValue(":name",ch1);
query.exec();
if(!query.exec())
{
qDebug()<<query.lastError();//--------->QSqlError("","Parametercountmismatch","")
qDebug()<<"1";
}
else
2 个解决方案
#1
当我换了个写法后
QStringsql="SELECT*FROMplayers(name)values(%1)";
query.prepare(sql.arg(ch1));
这时候错误又由QSqlError("","Parametercountmismatch","")变成了QSqlError("","Unabletofetchrow","Noquery")
实在被这个弄得云里雾里==
更多相关文章
- MSSQL中类似MySQL的limit参数
- 求助,关于sql带入参数的写法问题。
- 参数化的Insert语句,事务抛出错误
- 错误:第t列。tgisconstraint不存在
- 请问MYSQL 08S01错误怎么解决,谢谢
- 即使提供了参数,过程也需要参数
- 处理SQL标准中的错误值
- SQL连接“实时错误'91'”
- 连接SQLServer时提示“但是在登录前的握手期间发生错误。 (provi