C++ 使用qt在SQLITE数据库中插入多行

C++ 使用qt在SQLITE数据库中插入多行,c++,database,qt,sqlite,C++,Database,Qt,Sqlite,您好,我正在尝试使用Qt5.4将多行(本例中为两行)插入SQLITE数据库。我一直在关注文档,但程序崩溃了,我无法解释原因 query_Invoice.prepare("INSERT INTO Invoice VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); QVariantList Invoice_Number, Date_Time, Total_Purchased, Qty, Description, Product_CODE, Unit_Price,

您好,我正在尝试使用Qt5.4将多行(本例中为两行)插入SQLITE数据库。我一直在关注文档,但程序崩溃了,我无法解释原因

query_Invoice.prepare("INSERT INTO Invoice VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
QVariantList Invoice_Number, Date_Time, Total_Purchased, Qty, Description, Product_CODE, Unit_Price, Total_Price, Goods_Total, VAT_Invoice, Company_ID;
Invoice_Number << 1 << 2;
Date_Time << 1776-07-04 << 1776-07-05;
Total_Purchased << 2 << 3;
Qty << 50 << 60;
Description << "Paint" << "Drill" << QVariant(QVariant::String);
Product_CODE << "EEFF2" << "EEF23" << QVariant(QVariant::String);
Unit_Price << 12 << 13;
Total_Price << 53 << 66;
Goods_Total << 70 << 80;
VAT_Invoice << 55 << 66;
Company_ID << 1 << 2;
query_Invoice.addBindValue(Invoice_Number);
query_Invoice.addBindValue(DateTime);
query_Invoice.addBindValue(Total_Purchased);
query_Invoice.addBindValue(Qty);
query_Invoice.addBindValue(Description);
query_Invoice.addBindValue(Product_CODE);
query_Invoice.addBindValue(Unit_Price);
query_Invoice.addBindValue(Total_Price);
query_Invoice.addBindValue(Goods_Total);
query_Invoice.addBindValue(VAT_Invoice);
query_Invoice.addBindValue(Company_ID);
query_Invoice.execBatch();
qDebug() << query_Invoice.executedQuery();
qDebug() << query_Invoice.lastError();
query\u Invoice.prepare(“插入发票值(?,,,,,,,,,,,,?)”;
QVariantList发票编号、日期时间、采购总额、数量、说明、产品代码、单价、总价、货物总额、增值税发票、公司ID;

通过尝试成功插入一行开始发票编号。您需要指定值对应于表中的哪些列

query_Invoice.prepare( "INSERT INTO Invoice ( column_name1, column_name2, column_name3 ) VALUES ( ?,?,? )" );
另外,
addBindValue(DateTime)
应该是
addBindValue(Date\u Time)

以及


query\u Invoice.prepare(“插入发票值(?,,,,,,,,,,,,?)”;您是如何初始化数据库的?是的,我已连接到数据库并创建了具有相应字段的表。请参见查询字符串中的“否关闭”
。。我很乐意在数据库中插入一行。您是否尝试添加列名?添加了另一个建议。addBindValue()中的DateTime to Date_Time将DateTime更改为Date_Time,并且它正在工作,非常感谢您的帮助。
query_Invoice.prepare("INSERT INTO Invoice VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); <---- Closing paren after last '?'