QSqlQuery - 准备失败并显示'Parameter count mismatch'



下面的代码创建一个表并在数据库中填充数据。运行以下代码时,我在query.exec()上收到一个错误'Parameter count mismatch'。但是,如果我使用注释行,一切都会很好。我怎么会滥用prepare功能?

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());
        }
    }
}

只需使用:

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

即不要引用绑定变量。

最新更新