欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

QT5中使用SQLite的实现方法

程序员文章站 2022-03-02 23:10:32
sqlite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,非常适合嵌入式系统。 qt5以上版本可以直接使用sqlite。1、修改.pro文件,添加sql模块:qt...

sqlite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,非常适合嵌入式系统。
qt5以上版本可以直接使用sqlite。

1、修改.pro文件,添加sql模块:

qt += sql

2、main.cpp代码如下:

#include "mainwindow.h"
#include <qapplication>
//添加头文件
#include <qdebug.h>
#include <qsqldatabase>
#include <qsqlerror>
#include <qsqlquery>

int main(int argc, char *argv[])
{
    qapplication a(argc, argv);

    //建立并打开数据库
    qsqldatabase database;
    database = qsqldatabase::adddatabase("qsqlite");
    database.setdatabasename("mydatabase.db");
    if (!database.open())
    {
        qdebug() << "error: failed to connect database." << database.lasterror();
    }
    else
    {
        qdebug() << "succeed to connect database." ;
    }

    //创建表格
    qsqlquery sql_query;
    if(!sql_query.exec("create table student(id int primary key, name text, age int)"))
    {
        qdebug() << "error: fail to create table."<< sql_query.lasterror();
    }
    else
    {
        qdebug() << "table created!";
    }

    //插入数据
    if(!sql_query.exec("insert into student values(1, \"wang\", 23)"))
    {
        qdebug() << sql_query.lasterror();
    }
    else
    {
        qdebug() << "inserted wang!";
    }
    if(!sql_query.exec("insert into student values(2, \"li\", 23)"))
    {
        qdebug() << sql_query.lasterror();
    }
    else
    {
        qdebug() << "inserted li!";
    }

    //修改数据
    sql_query.exec("update student set name = \"qt\" where id = 1");
    if(!sql_query.exec())
    {
        qdebug() << sql_query.lasterror();
    }
    else
    {
        qdebug() << "updated!";
    }

    //查询数据
    sql_query.exec("select * from student");
    if(!sql_query.exec())
    {
        qdebug()<<sql_query.lasterror();
    }
    else
    {
        while(sql_query.next())
        {
            int id = sql_query.value(0).toint();
            qstring name = sql_query.value(1).tostring();
            int age = sql_query.value(2).toint();
            qdebug()<<qstring("id:%1    name:%2    age:%3").arg(id).arg(name).arg(age);
        }
    }

    //删除数据
    sql_query.exec("delete from student where id = 1");
    if(!sql_query.exec())
    {
        qdebug()<<sql_query.lasterror();
    }
    else
    {
        qdebug()<<"deleted!";
    }

    //删除表格
    sql_query.exec("drop table student");
    if(sql_query.exec())
    {
        qdebug() << sql_query.lasterror();
    }
    else
    {
        qdebug() << "table cleared";
    }

    //关闭数据库
    database.close();
    return a.exec();
}

3、应用程序输出如下:

QT5中使用SQLite的实现方法

4、创建的 mydatabase.db 在build的这个文件夹下:
d:\qt\project\build-sl-desktop_qt_5_10_1_mingw_32bit-debug

到此这篇关于qt5中使用sqlite的实现方法的文章就介绍到这了,更多相关qt5使用sqlite内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

相关标签: QT 使用 SQLite