<首先,应该在pro文件中添加如下语句>
QT +=sql
在头文件中声明调用所需要的库
#include <QSql>//数据库
#include <QSqlDatabase>//数据库
#include <QSqlQuery>//语句
#include <QSqlError>//错误
链接数据库
QSqlDatabase m_db =QSqlDatabase::addDatabase("QSQLITE","note.db");//此处的第一个参数为所调用的数据库,因为在QT中有QMYSQL,QODBC等数据库,所以在此需要声明,第二个参数为本地数据库的路径和名字,如果在某个文件夹下,可以如下写:res\note.db
// 打开数据库
m_db.setDatabaseName("note.db");
m_db.open();//此处可以添加bool变量判断打开状态
QSqlQuery query=QSqlQuery(m_db);//声明Query语句,方便以后的调用,并且绑定数据库为m_db;
此处在网上很多地方甚至没有,直接导致执行query语句时提示数据库没有打开的错误,需要特别注意。
//创建表
QString create_sql ="create table today (title text,note,text)";
query.prepare(create_sql);//先准备
query.exec();//执行create table 语句
//此处省去了bool判断,如果需要可以自己加:
if (!query.exec()){
qDebug()<<query.lastError();//记不太清,准确性有待考证
}
//插入内容
QString insert_sql ="insert into note values('今天没吃药,感觉萌萌哒','今天天气不错,嗯,好好学习')";
query.prepare(insert_sql);//先准备
query.exec();//执行 语句
//更新语句
QString updata_sql="updata note set title='今天吃药了' where note ='今天天气不错,嗯,好好学习'";
query.prepare(update_sql);//先准备
query.exec();//执行语句
//查询语句
QString look_sql="select * from note";query.prepare(look_sql);
query.exec();
while(query.next()){//取出结果,采用query.next()
QString title = query.value(0).toString;
QString note = query.value(1).toString;
//接下来可以输出也可以不输出,自己看。。
}
//删除语句
QString delete_sql ="delete note where title='今天吃药了'";
query.prepare(delete_sql);
query.exec();
//大致上就是这些内容了