QT5中使用SQLite的实现方法

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、应用程序输出如下:

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

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

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐