Qt--SQLite的使用

一、SQLite的介绍

1、SQLite学习笔记--资料汇总

2、SQLite学习笔记--SQLite的基本介绍和安装

3、SQLite学习笔记--SQLite的命令与语法

4、SQLite学习笔记--数据类型与创建数据库

 

二、创建SQLite数据库

1、运行SQLite官方执行文件创建请看SQLite学习笔记--数据类型与创建数据库

2、在Qt 工程中创建请看在Qt中使用SQLite数据库

 

三、Qt 中connect 数据库步骤

1、新建工程;

2、数据库文件拷贝到输出路径中;

3、pro文件中加上 sql 模块

//
QT += sql
//

4、工程中代码

//
#include <QWidget>
#include <QDebug>
#include <QString>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlRecord>
#include <QTextStream>

int main(int argc, char *argv[])
{
    QTextStream out(stdout);
    QSqlDatabase dbUser;
    dbUser = QSqlDatabase::addDatabase("QSQLITE");
    dbUser.setDatabaseName("my.db");

    //创建数据库连接并打开(如果数据库打开失败则终止应用程序)
    if (!dbUser.open()) {
        return 1;
    } else {
        //读数据库中的表
        QStringList tables = dbUser.tables();
        QString tabName, sqlString;
//        tables = dbUser.tables(QSql::Tables);
        //读表中数据
        for (int i = 0; i < tables.size(); i++)
        {
            tabName = tables.at(i);     //获取第 i+1 张表格的名称
            qDebug() << tabName;
            sqlString = "SELECT * FROM " + tabName;     //从表中选取所有的列
            QSqlQuery q(sqlString);     //从表tabName中选取所有的列
            QSqlRecord rec = q.record();      //表格tabName中的数据记录全部记在rec中
            int fieldCount = rec.count();       //统计列数
            qDebug() << fieldCount;
            QString fieldName;
            for (int j = 0; j < fieldCount; j++)
            {
                fieldName = rec.fieldName(j);       //获取第 j+1 个列名
                out << fieldName << "\t";
            }
            out << endl;
            while (q.next())
            {
                out << q.value(0).toInt() << "\t";
                out << q.value(1).toString() << "\t";
                out << q.value(2).toString() << "\t";
                out << q.value(3).toString() << "\t";
                out << q.value(4).toString() << "\t";
                out << q.value(5).toString() << "\t";
            }
            out << endl;
            qDebug() << "nimeide" << q.value(2).toChar();
        }
    }

    return 0;
}
//

5、工程连接点击此处

 

四、只是创建数据库

 

1、新建工程;

2、pro文件中加上 sql 模块

//
QT += sql
//

3、工程中代码

//
#include <QDebug>
#include <QString>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlRecord>
#include <QTextStream>

int main(int argc, char *argv[])
{
    QSqlDatabase db;
    db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("my.db");
    if (!db.open())
    {
       return 0;
    }
    QSqlQuery query;
    query.exec(QObject::tr("create table user (uid vchar primary key, name vchar, sid vchar, npw vchar, cpw vchar)"));
    query.exec(QObject::tr("insert into user values ('18862358888','xiaowang', '13050143**', '123456', '123456')"));
    db.close();

    return 0;
}
//

 

五、问题汇总

 

1、QT里使用sqlite的问题,好多坑

2、点击打开链接

3、Qt中使用QSqlDatabase::removeDatabase()的正确方法

 

致谢

1、《Qt Creator快速入门》[第3版] 作者 霍亚飞

2、在Qt中使用SQLite数据库

 

 

 

 

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读