QSqlTableModel操作数据库 C++代码
时间: 2024-06-15 19:04:52 浏览: 79
QSqlTableModel是Qt框架中用于操作数据库的模型类一,它提供了对数据库表的读写操作。下面是一个简单的C++代码示例,演示了如何使用QSqlTableModel来进行数据库操作:
```cpp
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlTableModel>
#include <QDebug>
int main()
{
// 创建数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("test.db");
if (!db.open()) {
qDebug() << "Failed to connect to database.";
return -1;
}
// 创建数据模型
QSqlTableModel model;
model.setTable("students"); // 设置要操作的表名
// 从数据库中选择数据
model.select();
// 输出所有数据
for (int i = 0; i < model.rowCount(); ++i) {
qDebug() << "ID:" << model.record(i).value("id").toInt()
<< "Name:" << model.record(i).value("name").toString()
<< "Age:" << model.record(i).value("age").toInt();
}
// 插入一条新数据
QSqlRecord record = model.record();
record.setValue("id", 1001);
record.setValue("name", "John");
record.setValue("age", 20);
model.insertRecord(-1, record);
// 提交修改到数据库
if (!model.submitAll()) {
qDebug() << "Failed to submit changes.";
return -1;
}
// 关闭数据库连接
db.close();
return 0;
}
```
上述代码首先创建了一个SQLite数据库连接,并打开了名为"test.db"的数据库文件。然后创建了一个QSqlTableModel对象,并设置要操作的表名为"students"。接着使用select()方法从数据库中选择数据,并通过遍历模型的记录来输出所有数据。
代码中还演示了如何插入一条新数据,通过创建一个QSqlRecord对象并设置字段值,然后使用insertRecord()方法将记录插入到模型中。最后使用submitAll()方法将修改提交到数据库,并关闭数据库连接。
阅读全文