QT 使用QSqlQuery时候的 错误,。。。。

时间:2021-06-27 10:45:25
最近 刚接触QT的 数据库这一块  写了一小段代码,但一直出现QSqlError("", "Parameter count mismatch", "") 和QSqlError("", "Unable to fetch row", "No query")的错误,在网上找是说参数计数不匹配。。  但自己找了很久发现对应参数都是对的  请教一下大神们,,,, QT 使用QSqlQuery时候的 错误,。。。。


query.exec("CREATE TABLE players("
               "id INTEGER PRIMARY KEY,"
               "name TEXT NOT NULL, "
               "password TEXT NOT NULL, "
               "state INTEGER NOT NULL)");

query.prepare("SELECT MAX(id) FROM players");
        if(!query.exec())
        {
            qDebug()<<query.lastError();//--------->QSqlError("", "Unable to fetch row", "No query")
        }
       else
       {
           while(query.next())
           {
                maxid=query.value(0).toInt();
                qDebug()<<maxid;

           }
        }
        query.prepare("SELECT * FROM players"
                      "WHERE name = :name");
        query.bindValue(":name",ch1);
        query.exec();
       if(!query.exec())
        {
            qDebug()<< query.lastError();//--------->QSqlError("", "Parameter count mismatch", "") 
            qDebug()<<"1";
        }
        else

2 个解决方案

#1


当我换了个写法后    
QString sql = "SELECT * FROM players(name)values(%1)";
query.prepare(sql.arg(ch1));


这时候错误又由   QSqlError("", "Parameter count mismatch", "")    变成了  QSqlError("", "Unable to fetch row", "No query")

实在被这个弄得 云里雾里= =

#2


Where 后多了个空格

#1


当我换了个写法后    
QString sql = "SELECT * FROM players(name)values(%1)";
query.prepare(sql.arg(ch1));


这时候错误又由   QSqlError("", "Parameter count mismatch", "")    变成了  QSqlError("", "Unable to fetch row", "No query")

实在被这个弄得 云里雾里= =

#2


Where 后多了个空格