zoukankan      html  css  js  c++  java
  • 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);
    }
  • 相关阅读:
    JavaScript中的分支结构
    JavaScript中的函数
    JavaScript的数据类型转换
    javascript 概述及基础知识点(变量,常量,运算符,数据类型)
    关于检索关键字的常用四种方法
    Array.prototype.sort()
    String()与toString()区别和应用
    关于css的优先级
    android--asp.net webservice 返回json
    android--handler
  • 原文地址:https://www.cnblogs.com/shiyixirui/p/15164531.html
Copyright © 2011-2022 走看看