QSqlQuery - 使用'参数计数不匹配'准备失败

时间:2012-01-08 18:50:39

标签: sql qt

以下代码创建一个表并使用数据填充数据库。运行以下代码时,我在'Parameter count mismatch'上收到错误query.exec()。但是,如果我使用注释行代码,一切正常。我如何滥用准备功能?

QSqlQuery query;
if (query.exec("CREATE TABLE Users ( u_ID INT IDENTITY(1,1) PRIMARY KEY, cName varchar(25) UNIQUE )"))
{
    for (int i=1;i<=100;++i)
    {
        QString uName;
        uName = "user" + QString::number(i);
        query.prepare("INSERT INTO Users (cName) VALUES(':UNAME')");
        query.bindValue(":UNAME",uName);
        query.exec();
        //query.exec("INSERT INTO Users (cName) VALUES('"  + uName +  "')");
        if (query.lastError().isValid()){
            QMessageBox::information(0,"ERR!",query.lastError().text());
        }
    }
}

1 个答案:

答案 0 :(得分:6)

只需使用:

query.prepare("INSERT INTO Users (cName) VALUES(:UNAME)");

即。不要引用绑定变量。