在Qt中,使用SQLite数据库进行新建、增、改、查操作可以通过Qt提供的QSqlDatabase
、QSqlQuery
等类来实现。下面是一个简单的示例,展示如何使用Qt进行SQLite数据库的基本操作。
准备工作
首先,确保在你的Qt项目中启用了SQL模块。在.pro
文件中添加以下内容:
plaintext
QT += sql
示例代码
以下是一个完整的示例,展示如何新建一个SQLite数据库,并在其中进行增、改、查操作。
cpp
#include <QCoreApplication> #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlError> #include <QDebug>
int main(int argc, char *argv[]) { QCoreApplication a(argc, argv);
// 创建并打开SQLite数据库 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("mydatabase.db"); // 数据库文件名
if (!db.open()) { qDebug() << "Error: connection with database failed"; } else { qDebug() << "Database: connection ok";
// 创建表 QSqlQuery query; query.exec("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)");
// 插入数据 query.prepare("INSERT INTO users (name, age) VALUES (:name, :age)"); query.bindValue(":name", "Alice"); query.bindValue(":age", 25); if (!query.exec()) { qDebug() << "Insert error:" << query.lastError(); }
query.bindValue(":name", "Bob"); query.bindValue(":age", 30); if (!query.exec()) { qDebug() << "Insert error:" << query.lastError(); }
// 查询数据 query.exec("SELECT * FROM users"); while (query.next()) { int id = query.value(0).toInt(); QString name = query.value(1).toString(); int age = query.value(2).toInt(); qDebug() << "ID:" << id << "Name:" << name << "Age:" << age; }
// 更新数据 query.prepare("UPDATE users SET age = :age WHERE name = :name"); query.bindValue(":age", 26); query.bindValue(":name", "Alice"); if (!query.exec()) { qDebug() << "Update error:" << query.lastError(); }
// 删除数据 query.prepare("DELETE FROM users WHERE name = :name"); query.bindValue(":name", "Bob"); if (!query.exec()) { qDebug() << "Delete error:" << query.lastError(); }
// 再次查询以查看更新后的数据 query.exec("SELECT * FROM users"); while (query.next()) { int id = query.value(0).toInt(); QString name = query.value(1).toString(); int age = query.value(2).toInt(); qDebug() << "ID:" << id << "Name:" << name << "Age:" << age; } }
db.close();
return a.exec(); }
代码说明
创建并打开数据库:使用
QSqlDatabase::addDatabase("QSQLITE")
创建一个SQLite数据库连接,并指定数据库文件名。创建表:使用
QSqlQuery
执行SQL语句创建表。插入数据:使用
prepare
和bindValue
方法准备插入语句,并绑定参数值。查询数据:执行
SELECT
语句,使用query.next()
遍历结果集。更新数据:使用
prepare
和bindValue
方法准备更新语句,并绑定参数值。删除数据:使用
prepare
和bindValue
方法准备删除语句,并绑定参数值。关闭数据库:在操作完成后关闭数据库连接。
通过这种方式,你可以在Qt中轻松地实现对SQLite数据库的基本操作。