Qt--使用SQLite

SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。


SQLite是一种轻量级的嵌入式数据库,它的数据库就是一个文件:
在这里插入图片描述


可以使用数据库可视化软件打开数据库文件,查看数据库内的数据:
在这里插入图片描述


#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>

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: Failed to create table."<< sql_query.lastError();
else
    qDebug()<<"Succeed to create table.";

//插入数据
if(!sql_query.exec("INSERT INTO student VALUES(1, \"Jim\", 23)"))
    qDebug()<<"Error: Failed to insert data."<<sql_query.lastError();
else
    qDebug()<<"Succeed to insert data.";

if(!sql_query.exec("INSERT INTO student VALUES(2, \"Tom\", 22)"))
    qDebug()<<"Error: Failed to insert data."<<sql_query.lastError();
else
    qDebug()<<"Succeed to insert data.";

//查询数据
sql_query.exec("select * from student");
if(!sql_query.exec())
    qDebug()<<"Error: Failed to select data.";
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("update student set name = \"QT\" where id = 1");
if(!sql_query.exec())
    qDebug()<<"Error: Failed to update date."<<sql_query.lastError();
else
    qDebug()<<"Succeed to update data.";

//删除数据
sql_query.exec("delete from student where id = 1");
if(!sql_query.exec())
    qDebug()<<"Error: Failed to delete data."<<sql_query.lastError();
else
    qDebug()<<"Succeed to delete data.";

//删除表格
sql_query.exec("drop table student");
if(sql_query.exec())
    qDebug()<<"Error: Failed to drop table."<<sql_query.lastError();
else
    qDebug()<<"Succeed to drop table.";

//关闭数据库
database.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贝勒里恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值