我有一个SQL数据库,我可以使用QSqlTableModel
读/写它。现在我创建了一个列表并将值插入其中。单击按钮后,我希望列表中的值在数据库中更新。
你的帮助将非常有用。请帮我修改代码。
Conndb conn;
conn.open();
QSqlQuery sql;
sql.prepare("insert into [ECUP_DSS_DB].[dbo].[ContHistory] (HistID, NodeID)"
"values (?, ?)");
QVariantList Hidval;
Hidval << 2 << 2 << 1 << 8;
sql.addBindValue(Hidval);
QVariantList Nodeval;
Nodeval << 2 << 2 << 1 << 8;
sql.addBindValue(Nodeval);
// QSqlTableModel * modal = new QSqlTableModel();
if (!sql.execBatch()) {
qDebug() << sql.lastError();
} else {
qDebug() << sql.executedQuery();
}
QSqlQueryModel * modal = new QSqlQueryModel();
sql.exec();
modal->setQuery(sql);
ui->tableView->setModel(modal);
conn.close();
答案 0 :(得分:0)
在批处理中添加多个值的最简单示例如下所示:
QVariantList values;
values << 1 << 2 << 3;
QSqlQuery query;
query.prepare("INSERT INTO numbers (number) VALUES(?)");
query.addBindValue(values);
if (!query.execBatch()) {
qDebug() << query.lastError();
} else {
qDebug() << query.executedQuery();
}
设置表格视图
QSqlQueryModel* model = new QSqlQueryModel();
model->setQuery("SELECT id, number FROM numbers");
ui->tableView->setModel(model);
对于这个例子,我使用了下表:
CREATE TABLE IF NOT EXISTS numbers (id INTEGER PRIMARY KEY AUTOINCREMENT, number INTEGER);