以下代码创建一个表并使用数据填充数据库。运行以下代码时,我在'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());
}
}
}
答案 0 :(得分:6)
只需使用:
query.prepare("INSERT INTO Users (cName) VALUES(:UNAME)");
即。不要引用绑定变量。