zoukankan      html  css  js  c++  java
  • 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();
    
  • 相关阅读:
    Java 报错 -source 1.5 中不支持 diamond 运算符
    MacBook Java开发环境的配置
    MacBook 版本控制工具
    版本控制工具 Git SourceTree SSH 连接码云
    接口 请求https接口
    快递 共享电子面单
    快递 已发货订单重新打印电子面单
    SQL Server 分部分项导入后 数据的修改
    Hive数据的存储以及在centos7下进行Mysql的安装
    Hive初体验
  • 原文地址:https://www.cnblogs.com/llil/p/13492710.html
Copyright © 2011-2022 走看看