Qt 数据库操作

SQL 是操作数据库的标准语言,适用于MySQL、Oracle、DB2 等数据库。Qt 的 QtSql 模块基于 SQL 提供了相关数据库操作函数,因此得以使这些数据库操作起来大同小异。下面的以SQLite数据库为例记录,生成的数据库可通过SQLiteStudio进行可视化操作。

添加模块

  1. 在.pro文件中添加QT += sql
  2. 在头文件添加
#include <QSqlQuery>
#include <QSqlError>

添加数据库

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("MyData.db3");

打开数据库

if (!db.open()) 
{
    qDebug()<< "ERROR:"<<db.lastError().text();
    return false;
}

创建表

这里创建一张含义整型、字符串、二进制数据3种存储类型字段的表

QSqlQuery query;
query.exec("CREATE TABLE students ("
                    "id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    "name VARCHAR NOT NULL, "
                    "score INTEGER NOT NULL, "
                    "photo BLOB NOT NULL)");

增加记录

query.prepare("INSERT INTO students (name, score, photo) "
                "VALUES (:name, :score, :photo)");

query.bindValue(":name", "wangwu");
query.bindValue(":score", 99);
query.bindValue(":photo", QByteArray("BinData", 8));
query.exec();

删除记录

query.exec("DELETE FROM students WHERE id = 1");

修改记录

query.prepare("UPDATE students SET photo = :photo WHERE name = 'wangwu'");
query.bindValue(":photo", QByteArray("NewBinData", 11));
query.exec();

查找记录

query.exec("SELECT * FROM students WHERE name = 'wangwu'");
while (query.next())
{
    int id            =  query.value(0).toInt();
    QString name      =  query.value(1).toString();
    QByteArray photo  =  query.value(3).toByteArray();
}

关闭数据库

db.close();

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值