一、QT中的SQLite数据库
Header:
#include
qmake:
QT += sql//pro文件添加sql模块
执行数据库操作的类:
Header:
#include
qmake:
QT += sql
①、创建数据库的链接对象:
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;
}
}
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();
}
①、遍历所有数据并保存
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;
}
}