以下代码创建一个表,并使用数据填充数据库.当运行下面的代码,我收到一个错误'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());
}
}
}
Run Code Online (Sandbox Code Playgroud)
只需使用:
query.prepare("INSERT INTO Users (cName) VALUES(:UNAME)");
Run Code Online (Sandbox Code Playgroud)
即不引用绑定变量.