qt使用sqlite

在创建数据库之前,一定要在.pro文件中加上sql

1.可以在后面空格直接加上
QT       += core gui  sql
2.也可以另起一行
QT       += core gui
QT       += sql
这两种方法均可以
  1. 创建数据库
 //创建一个数据库
    db = QSqlDatabase::addDatabase("QSQLITE");//添加驱动
    db.setDatabaseName("stu.db");//数据库的名字

2.打开数据库

    bool ok = db.open();//如果不存在就创建,存在就打开
    if(ok)
    {
        qDebug()<<"数据库创建(打开)成功了";
    }
    else
    {
        qDebug()<<db.lastError().text();//调用上一次出错的原因
        exit(-1);
    }

3.查找数据库

 QSqlQuery query("select name from child_info",db);

完整的数据库注册代码

void Widget::on_addbtn_clicked()
{

    bool ok = db.open();//如果不存在就创建,存在就打开
    if(ok)
    {
        qDebug()<<"数据库创建(打开)成功了";
    }
    else
    {
        qDebug()<<db.lastError().text();//调用上一次出错的原因
        exit(-1);
    }

    QSqlQuery query;
    query.exec("create table child_info(name varchar(20),age varchar(20),gender varchar(20))");//创建表,执行sql



    query.prepare("INSERT INTO child_info (name, age, gender) "
                  "VALUES (:name, :age, :gender)");
    query.bindValue(":name", ui->namelineEdit->text());  
    query.bindValue(":age",ui->agelineEdit->text() );
    query.bindValue(":gender", ui->genderlineEdit->text());
    query.exec();


    ui->namelineEdit->clear();
    ui->agelineEdit->clear();
    ui->genderlineEdit->clear();
    db.close();
}

登录代码

void Widget::on_showbtn_clicked()
{
    bool ok = db.open();//如果不存在就创建,存在就打开
    if(ok)
    {
        qDebug()<<"数据库创建(打开)成功了";
    }
    else
    {
        qDebug()<<db.lastError().text();//调用上一次出错的原因
        exit(-1);
    }

    QSqlQuery query("select name from child_info",db);
    QSqlRecord rec = query.record();
    while(query.next())
    {
        rec = query.record();
        int snamecol = rec.indexOf("name");
        QString value = query.value(snamecol).toString();
        qDebug()<<"name"<<value;
        if(value=="周继")
        {
            qDebug()<<"找到了";
        }
    }
}

大致的操作如上,根据需要可以对代码进行更改。
要说的是,qt自带的这个sqlite是一个非常轻量级的数据库,使用起来也没有那么繁杂。最后的

		if(value=="周继") 可以更换为输入的内容,ui->namelineEdite->text()
        {
            qDebug()<<"找到了";
        }

这个判断应该为登录页面上的用户名。
根据自己的需要再进行修改吧,希望能够帮到大家!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐