QSqlQuery Parameter count mismatch错误,下面附部分代码,求帮助
QString sql = "INSERT INTO sys_Sale (order_sn, pay_sn, store_id,"
"store_name,buyer_id,buyer_name,buyer_email,add_time,"
"payment_code,payment_time,finished_time,goods_amount,"
"totalnum,order_amount,pd_amount,mpredeposit,card,cash,"
"recash,seller) VALUES (:g1, :g2, :g3, :g4, :g5,:g6,:g7,"
":g8,:g9,:g10,:g11,:g12,:g13,:g14,:g15,:g16,:g17,:g18,:g19,:g20)";
QList<QVariant> paramList;
paramList.append(orderStr);
paramList.append(orderStr);
paramList.append(GlobalVariable::AgencyId);
paramList.append(GlobalVariable::AgencyName);
paramList.append(_map["buyerId"]);
paramList.append(_map["buyerName"]);
paramList.append(_map["buyerEmail"].toString()!=""?_map["buyerEmail"].toString():"custom@email.com");
paramList.append(timeStr);
paramList.append(_map["payMethod"]);
paramList.append(timeStr);
paramList.append(timeStr);
paramList.append(_map["totalPrice"]);
paramList.append(_map["totalNum"]);
paramList.append(_map["realPrice"]);
//计算会员卡金额
double cardamount;
if(_map["payMethod"]=="custom")
{
cardamount = ui->cardEdit->text().toDouble();
paramList.append(ui->cardEdit->text());
}
else if(_map["payMethod"]=="member")
{
cardamount = cashEdit->text().toDouble();
paramList.append(cashEdit->text());
}
else
{
cardamount = ui->cardEdit->text().toDouble();
paramList.append(ui->cardEdit->text());
}
paramList.append(_map["memberPerident"].toDouble()-cardamount);
paramList.append(QString::number(cardamount,'f',2));
paramList.append(cashEdit->text());
paramList.append(ui->recashEdit->text());
paramList.append(GlobalVariable::SaleManName);
数据库操作部分代码
query.prepare(strQuery);
for(int i = 0; i < lstParameter.count(); i++)
query.bindValue(i, lstParameter[i]);
int ID = 0;
if(query.exec())
{
QString sql = "select max(order_id) from sys_Sale";
query.exec(sql);
query.next();
ID = query.record().value(0).toInt();
}
else
{
_error = query.lastError();
}
给的错误信息是参数数量不匹配,数据库连接没有问题