• Qt操作sqlite数据库


    代码讲解:

    1.检查数据库文件是否存在,如果不存在就创建数据库文件

    2.创建 person 表(等下的操作就是操作这个表)

    3.查询出 person 表中所有的数据,并显示出来

    Pro 文件 添加 SQL

    QT += sql

    .h 头文件

    #include <QtSql/QSqlDatabase>
    #include <QLabel>
    #include <QDir>
    #include <QSqlQuery>
    #include <QTableView>
    #include <QSqlTableModel>
    
    
    public:
        bool connection();  // 测试连接
        void createDB();    // 创建数据库
        void bindData();    // 绑定数据
    
        QSqlDatabase db;

    .cpp 源文件

        // 实例QLabel
        QLabel *my_label = new QLabel(this);
        my_label->setGeometry(QRect(50, 50, 200, 25));
    
        // 判断数据库文件是否存在
        bool dbFile = !QFile::exists(QDir::currentPath() + "/db.db");
        if(connection())
        {
            if(dbFile)
            {
                my_label->setText("不存在,请创建");
                createDB();
                bindData();
            }
            else
            {
                bindData();
            }
            db.close();
        }
        else
        {
            my_label->setText("连接失败");
        }
    bool MainWindow::connection()
    {
        db = QSqlDatabase::addDatabase("QSQLITE");
        db.setDatabaseName("db.db");
        if(!db.open())
        {
            return false;
        }
        return true;
    }
    
    void MainWindow::createDB()
    {
        QSqlQuery query;
        query.exec("create table person(id integer primary key autoincrement, name varchar(50) not null)");
        query.exec("insert into person(name) values('zhangsan')");
        query.exec("insert into person(name) values('lisi')");
    }
    
    void MainWindow::bindData()
    {
        QTableView *table_view = new QTableView(this);
        table_view->setGeometry(QRect(50, 80, 310, 200));
    
        QSqlTableModel *model = new QSqlTableModel;
        model->setTable("person");
        model->select();
    
        table_view->setModel(model);
        table_view->setEditTriggers(QAbstractItemView::NoEditTriggers);
    }
  • 相关阅读:
    thinkphp--标签库
    thinkphp中的参数绑定
    thinkphp3.2.3子查询中遇到的错误
    开篇马克
    BST树、B-树、B+树、B*树
    linux shell编程之变量和bash配置文件(第一篇)
    linux awk进阶篇
    linux awk(gawk)
    linux sed命令
    linux basic
  • 原文地址:https://www.cnblogs.com/shiyixirui/p/15164531.html
Copyright © 2020-2023  润新知