{
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"
而且实际也没有更新数据库的内容
2 个解决方案
#1
传入的字段个数与数据库中的列个数不匹配。必须匹配才会更新,不匹配不会给更新。可以检查一下是不是传入的参数有错,数据库中没有对应的字段(或列)。
#2
谢谢,问题已解决
#1
传入的字段个数与数据库中的列个数不匹配。必须匹配才会更新,不匹配不会给更新。可以检查一下是不是传入的参数有错,数据库中没有对应的字段(或列)。
#2
谢谢,问题已解决