C/C++ Qt数据库与SqlTableModel组件应用教程
简介
本教程将介绍如何在Qt中使用SqlTableModel组件进行数据库操作,包括连接数据库、创建表格、插入、查询、修改和删除数据。本教程适用于C/C++语言。
准备工作
在开始使用SqlTableModel之前,你需要安装Qt和一个SQLite或MySQL数据库。
安装Qt
你可以从Qt官网下载最新版本的Qt,安装过程中需要选择使用的编译器和Qt版本。如果你已经安装了Qt,可以跳过这一步。
安装SQLite数据库
如果你已经安装了SQLite数据库,可以跳过这一步。
Windows用户
你可以从SQLite官网下载预编译的SQLite库,包括dll和头文件,解压并拷贝到你的项目目录中。
Linux用户
通过以下命令安装SQLite:
sudo apt-get update
sudo apt-get install sqlite3 libsqlite3-dev
安装MySQL数据库
如果你已经安装了MySQL数据库,可以跳过这一步。
Windows用户
你可以从MySQL官网下载安装包,按照指示安装即可。
Linux用户
通过以下命令安装MySQL:
sudo apt-get update
sudo apt-get install mysql-server libmysqlclient-dev
连接数据库
使用SqlTableModel时,需要先连接到数据库。下面示例演示如何连接SQLite数据库,并创建一个名为"student"的表格,包括"id"和"name"两列。
#include <QSqlDatabase>
#include <QSqlQuery>
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); // 指定数据库类型
db.setDatabaseName("myDatabase.db"); // 指定数据库路径
if (db.open()) { // 连接数据库
QSqlQuery query; // 创建SQL语句执行对象
if (query.exec("CREATE TABLE student (id INT PRIMARY KEY, name TEXT)")) { // 创建表格
// 创建成功
} else {
// 创建失败
}
} else {
// 连接失败
}
使用SqlTableModel
连接成功后,就可以使用SqlTableModel组件进行数据库操作了。下面示例演示如何使用SqlTableModel查询并修改数据。
#include <QSqlTableModel>
QSqlTableModel *model = new QSqlTableModel();
model->setTable("student"); // 指定表格名
model->select(); // 查询所有数据
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
// 查询数据
for (int i = 0; i < model->rowCount(); i++) {
int id = model->record(i).value("id").toInt();
QString name = model->record(i).value("name").toString();
qDebug() << "id:" << id << ",name:" << name;
}
// 修改数据
int row = 0, col = 1;
QModelIndex index = model->index(row, col); // 获取要修改的数据索引
model->setData(index, "newName"); // 修改数据
model->submitAll(); // 提交修改
示例2
下面示例演示如何使用SqlTableModel插入新数据和删除数据。
#include <QSqlRecord>
// 插入新数据
QSqlRecord record;
record.append(QSqlField("id", QVariant::Int));
record.append(QSqlField("name", QVariant::String));
record.setValue("id", 123);
record.setValue("name", "Tom");
if (model->insertRecord(-1, record)) { // 插入数据
model->submitAll(); // 提交插入
} else {
// 插入失败
}
// 删除数据
int row = 0;
model->removeRow(row); // 删除数据
model->submitAll(); // 提交删除
总结
本教程介绍了如何使用Qt中的SqlTableModel组件进行数据库操作。首先需要连接到数据库,然后使用SqlTableModel查询、插入、修改、删除数据。本教程涉及的内容仅为入门级别,更多高级用法请参考Qt官方文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C/C++ Qt数据库与SqlTableModel组件应用教程 - Python技术站