一、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内
②、对比数据文章来源:https://www.toymoban.com/news/detail-696399.html
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;
}
例子:文章来源地址https://www.toymoban.com/news/detail-696399.html
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类中。
到了这里,关于5、QT中SQLite数据库的操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!