qt使用sqlite
在创建数据库之前,一定要在.pro文件中加上sql
1.可以在后面空格直接加上
QT += core gui sql
2.也可以另起一行
QT += core gui
QT += sql
这两种方法均可以
- 创建数据库
//创建一个数据库
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()<<"找到了";
}
这个判断应该为登录页面上的用户名。
根据自己的需要再进行修改吧,希望能够帮到大家!