Qt QSqlite数据库
前言qt自带的QSqlite数据库。主要掌握增删改查常用命令1、首先.pro文件中需加入QT+= sql然后头文件#include <QSqlError>#include <QSqlDatabase>#include <QSqlQuery>2、连接数据库QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
·
前言
qt自带的QSqlite数据库。主要掌握增删改查
常用命令
1、首先.pro文件中需加入
QT += sql
然后头文件
#include <QSqlError>
#include <QSqlDatabase>
#include <QSqlQuery>
2、连接数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setHostName("127.0.0");
db.setDatabaseName(baseName); //设置数据库名称
db.setUserName("user");
db.setPassword("pwssword");
if(!db.open()){
qDebug()<<"open error:"<<db.lastError();;
}
3、创建表
QSqlQuery query(db);
/*id integer primary key, 这样iD 就可以自增*/
QString cmd = "create table notes(id integer primary key,
title varchar(100),
tag varchar(50),
time varchar(50),
content varchar(1000);";
if(!query.exec(cmd){
qDebug()<<"create error!";
}
4、插入数据
QSqlQuery query(db);
/*这里id不用设置,会自增*/
QString cmd = "insert into notes(title,tag,time,content) values('QSlite test','database','2021-01-21','how to user QSlite');";
if(!query.exec(cmd){
qDebug()<<"insert error!";
}
5、修改数据
QSqlQuery query(db);
QString cmd = "update notes set title='QSqlite test-change',
tag='QSqlite',
time='2021-01-22',
content='how to user QSlite and so on'
where id=1;";
if(!query.exec(cmd){
qDebug()<<"change error!";
}
6、删除数据
QSqlQuery query(db);
QString cmd ="delete from notes where id=1;";
if(!query.exec(cmd){
qDebug()<<"delete error!";
}
上面是删除满足条件的数据,表结构即字段还在,可以直接再插入数据
下面是直接删除表,表名字还在,字段结构无了,必须要先create创建,才能插入数据
QSqlQuery query(db);
QString cmd ="drop table notes;";
if(!query.exec(cmd){
qDebug()<<"drop error!";
}
7、查询数据
QSqlQuery query(db);
QString cmd ="select * from notes;"
if(!query.exec(cmd){
qDebug()<<"select error!";
}else{
while(query.next()){
qDebug()<<"id:"<<query.value(0).toString();
qDebug()<<"title:"<<query.value(1).toString();
qDebug()<<"tag:"<<query.value(2).toString();
qDebug()<<"time:"<<query.value(3).toString();
qDebug()<<"content:"<<query.value(4).toString();
}
}
上面是获取数据库中所有的数据
也可以筛选出满足条件的数据
QSqlQuery query(db);
QString cmd ="select * from notes where title='QSqlite test-change' and time='2021-01-21';"
if(!query.exec(cmd){
qDebug()<<"exec error!";
}else{
while(query.next()){
qDebug()<<"id:"<<query.value(0).toString();
qDebug()<<"title:"<<query.value(1).toString();
qDebug()<<"tag:"<<query.value(2).toString();
qDebug()<<"time:"<<query.value(3).toString();
qDebug()<<"content:"<<query.value(4).toString();
}
}
8、获取数据库中所有的表
QSqlQuery query(db);
QStringList list = db.tables();
9、获取表中的字段
QSqlQuery query(db);
QString cmd ="PRAGMA table_info(notes);";
if(!query.exec(cmd){
qDebug()<<"exec error!";
}else{
while(query.next()){
qDebug()<<query.value(1).toString();
}
}
10、获取表中数据条数
QSqlQuery query(db);
QString cmd ="select count() from notes;";
if(!query.exec(cmd){
qDebug()<<"exec error!";
}else{
query.seek(0);
qDebug()<<query.value(0).toInt();
}
最后一个小daemon,标题 标签 内容
更多推荐
已为社区贡献1条内容
所有评论(0)