5、QT中SQLite数据库的操作

一、QT中的SQLite数据库

1、添加头文件和模块

Header:
#include <QSqlDatabase> 
qmake:
QT += sql//pro文件添加sql模块

执行数据库操作的类:

Header:
#include <QSqlQuery> 
qmake:
QT += sql

2、C语言中的SQLite增删减查

SQLite3的基础教程

3、SQLite的初始化

①、创建数据库的链接对象:

QSqlDatabase dataBase;

②、使用数据库驱动

dataBase = QSqlDatabase :: addDatabase("QSQLITE");//添加数据库的驱动

③、设置数据库的名称(创建一个数据库)

dataBase.setDatabaseName("QSQLITE");

④、创建一张表

QString table = "create table user_table(user QString, paswd QString)";
sqlQuery = QSqlQuery(dataBase);//指定这个操作将在哪个数据库上执行。
bool flag = sqlQuery.exec(table);//执行数据库的操作

例子:

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    dataBase = QSqlDatabase :: addDatabase("QSQLITE");//添加数据库的驱动
    dataBase.setHostName("数据库");
    dataBase.setDatabaseName("QSQLITE");
    dataBase.setUserName("123456");
    dataBase.setPassword("123456");

    //打开数据库
    if(dataBase.open())
    {
        qDebug() << "打开成功" << endl;
    }
    //创建一张表
    QString table = "create table user_table(user QString, paswd QString)";
    //执行数据库的操作
    sqlQuery = QSqlQuery(dataBase);//执行操作的数据库:QSQLITE
    bool flag = sqlQuery.exec(table);//执行数据库的操作
    if(flag==true)
    {
        qDebug()<<"数据库表创建成功"<<endl;
    }
}

4、插入数据

 QString insert = QString("insert into user_table(user,paswd) values('%1','%2')").arg(user).arg(paswd);

例子:

void Widget::on_pushButton_clicked()
{
    QString user = ui->lineEdit->text();
    QString paswd = ui->lineEdit_2->text();

    QString find = QString("select * from user_table where user='%1'").arg(user);
    bool ret = sqlQuery.exec(find);
    if(ret)
    {
        if(sqlQuery.next())
        {
            qDebug() << "账号已经存在" << endl;
            ui->lineEdit->clear();
            ui->lineEdit_2->clear();
            return;
        }
    }

    QString insert = QString("insert into user_table(user,paswd) values('%1','%2')").arg(user).arg(paswd);
    bool flag = sqlQuery.exec(insert);//执行数据库插入操作
    if(!flag)
    {
        qDebug()<<"数据插入失败"<<endl;
    }
    ui->lineEdit->clear();
    ui->lineEdit_2->clear();
}

5、查找数据

①、遍历所有数据并保存

QString find = "select * from user_table";
bool flag = sqlQuery.exec(find);//把遍历的所有数据都保存在sqlQuery内

②、对比数据

while(sqlQuery.next())//遍历查询结果中的每一行记录。
{
	//从查询结果中获取每一行记录的第一列和第二列的值
    QString user = sqlQuery.value(0).toString();
    QString paswd = sqlQuery.value(1).toString();

    if(user == code && paswd == pwd)
    {
        qDebug() << "登录成功" << endl;
    }
    qDebug() << "账号:" << user << endl;
    qDebug() << "密码:" << paswd << endl;
}

例子:

void Widget::on_pushButton_2_clicked()
{

    QString code = ui->lineEdit->text();
    QString pwd = ui->lineEdit_2->text();

    QString find = "select * from user_table";
    bool flag = sqlQuery.exec(find);
    if(flag==true)
    {
        qDebug()<<"数据库查询成功"<<endl;
    }

    while(sqlQuery.next())
    {
        QString user = sqlQuery.value(0).toString();
        QString paswd = sqlQuery.value(1).toString();

        if(user == code && paswd == pwd)
        {
            qDebug() << "登录成功" << endl;
        }
        qDebug() << "账号:" << user << endl;
        qDebug() << "密码:" << paswd << endl;
    }
}

6、注意

  • 查询数据的时候,必须要先把遍历的数据保存在sqlQuery类中。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值