Qt操作SQLite数据库的教程详解
在Qt中,可以使用QSqlDatabase来操作Sqlite数据库,以下是详细的攻略。
步骤一:导入Sqlite驱动
在使用Sqlite数据库之前,需要导入Sqlite驱动。在*.pro文件中添加如下代码:
QT += sql
...
#SQLite
QT += sqlite
步骤二:连接Sqlite数据库
使用QSqlDatabase类的addDatabase()函数创建一个数据库连接:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("mydatabase.db");
if (!db.open()) {
qDebug() << "Database Error!";
return;
}
创建一个名为mydatabase.db的数据库连接,如果连接成功,则会输出“Database Error!”
步骤三:执行Sql语句
使用QSqlQuery类执行Sql语句:
QSqlQuery query("SELECT * FROM mytable");
while (query.next()) {
qDebug() << query.value(0).toInt() << query.value(1).toString();
}
以上代码执行了SELECT语句,并遍历了结果集。
示例一:插入数据
QSqlQuery query;
query.prepare("INSERT INTO mytable (id, name) VALUES (:id, :name)");
query.bindValue(":id", 1);
query.bindValue(":name", "Tom");
query.exec();
以上代码插入了一条数据,其中id为1,name为Tom。
示例二:更新数据
QSqlQuery query;
query.prepare("UPDATE mytable SET name=:name WHERE id=:id");
query.bindValue(":id", 1);
query.bindValue(":name", "Jerry");
query.exec();
以上代码更新了id为1的记录的name字段为Jerry。
完整代码
#include <QCoreApplication>
#include <QDebug>
#include <QSqlDatabase>
#include <QSqlQuery>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("mydatabase.db");
if (!db.open()) {
qDebug() << "Database Error!";
return 1;
}
QSqlQuery query("SELECT * FROM mytable");
while (query.next()) {
qDebug() << query.value(0).toInt() << query.value(1).toString();
}
QSqlQuery insertquery;
insertquery.prepare("INSERT INTO mytable (id, name) VALUES (:id, :name)");
insertquery.bindValue(":id", 1);
insertquery.bindValue(":name", "Tom");
insertquery.exec();
QSqlQuery updatequery;
updatequery.prepare("UPDATE mytable SET name=:name WHERE id=:id");
updatequery.bindValue(":id", 1);
updatequery.bindValue(":name", "Jerry");
updatequery.exec();
return a.exec();
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Qt操作SQLite数据库的教程详解 - Python技术站