qsqlite进行数据库增删改查
时间: 2023-11-23 09:05:55 浏览: 69
Sqlite增删改查操作
QSqlite是Qt框架中的一个数据库模块,可以用来连接SQLite数据库并进行增删改查操作。以下是一个示例代码:
```cpp
#include <QtSql>
int main()
{
// 连接数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("test.db");
if (!db.open()) {
qDebug() << "Cannot open database";
return 1;
}
// 执行查询语句
QSqlQuery query;
if (!query.exec("SELECT * FROM mytable")) {
qDebug() << query.lastError().text();
return 1;
}
while (query.next()) {
QString name = query.value(0).toString();
int age = query.value(1).toInt();
qDebug() << name << age;
}
// 执行插入语句
query.prepare("INSERT INTO mytable (name, age) VALUES (:name, :age)");
query.bindValue(":name", "John");
query.bindValue(":age", 30);
if (!query.exec()) {
qDebug() << query.lastError().text();
return 1;
}
// 执行更新语句
query.prepare("UPDATE mytable SET age = :age WHERE name = :name");
query.bindValue(":name", "John");
query.bindValue(":age", 35);
if (!query.exec()) {
qDebug() << query.lastError().text();
return 1;
}
// 执行删除语句
query.prepare("DELETE FROM mytable WHERE name = :name");
query.bindValue(":name", "John");
if (!query.exec()) {
qDebug() << query.lastError().text();
return 1;
}
// 关闭数据库连接
db.close();
return 0;
}
```
这段代码首先连接了一个名为test.db的SQLite数据库,然后执行了一个查询语句,接着执行了一个插入、一个更新和一个删除语句。最后关闭了数据库连接。注意,这里使用了QSqlQuery::prepare()方法来预处理SQL语句,并使用bindValue()方法来绑定参数,这是一种安全的方式,可以避免SQL注入攻击。
阅读全文