Parameter count mismatch 请各位大佬帮忙解决

JMXIN422 2017-08-07 11:02:19
bool DataBase::createTable()
{
QSqlDatabase db = QSqlDatabase::database("sqlite2"); //建立数据库连接
QSqlQuery query(db);
bool success = query.exec("create table car(id int primary key,buyer_name varchar,"
"phone_number varchar,time varchar,money varchar,rate varchar,type varchar,"
"carnumber varchar,carduce varchar,month varchar,day varchar)");
if(success)
{
qDebug() << QObject::tr("数据库表创建成功!\n");
return true;
}
else
{
qDebug() << QObject::tr("数据库表创建失败!\n");
return false;
}
db.close();

}




//根据ID更新记录
bool DataBase::updateById(int id,QString *m)
{
QSqlDatabase db = QSqlDatabase::database("sqlite2"); //建立数据库连接
QSqlQuery query(db);
query.prepare(QString("update car set buyer_name=?"
"phone_number=?,time=?, money=?,rate=?,type=?"
"carnumber=?,carduce=?, month=?,day=? where id=%1").arg(id));
qDebug()<<id;
for(int x=0;x<10;x++)
{
if(m[x]!=NULL&&m[x]!="年月日"&&m[x]!="月"&&m[x]!="日")query.bindValue(x,m[x]);
}
bool success=query.exec();
if(!success)
{
QSqlError lastError = query.lastError();
qDebug() << lastError.driverText() << QString(QObject::tr("更新失败"));
}
return true;
}


但是使用这个函数时,总会"Parameter count mismatch"
而且实际也没有更新数据库的内容
...全文
1576 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
JMXIN422 2017-08-09
  • 打赏
  • 举报
回复
谢谢,问题已解决
一听柚zi 2021-07-30
  • 举报
回复
@JMXIN422 哥能说下怎么解决的吗?新手泪目,想不明白了都
  • 打赏
  • 举报
回复
传入的字段个数与数据库中的列个数不匹配。必须匹配才会更新,不匹配不会给更新。可以检查一下是不是传入的参数有错,数据库中没有对应的字段(或列)。

16,203

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧