QT对sqlite数据库进行读写
1、这里以vs2013+qt5为开发环境,环境搭建请自行解决
在自己的工程里,首先加入qt的sql库引用,如下图所示,打开QT的配置界面,勾选”sql“就可以了


2、在自己的工程文件中包含相关头文件
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>

3、初始化数据库链接,如果是第一次打开会创建一个数据库文件
QSqlDatabase database;
if (QSqlDatabase::contains("qt_sql_default_connection"))
{
database = QSqlDatabase::database("qt_sql_default_connection");
}
else
{
database = QSqlDatabase::addDatabase("QSQLITE");
database.setDatabaseName("xxx.db");//创建xxx.db文件
database.setUserName("root");
database.setPassword("123456");
}
如下图2所示,数据库文件已经成功创建了


4、接下来是打开数据库,链接成功后就可以进行操作了

5、简单的创建表操作,创建一个"test"表
QSqlQuery sql_query;//这个是数据库操作对象
QString create_sql = "CREATE TABLE test(name VARCHAR(32) primary key,value VARCHAR(260));";
sql_query.prepare(create_sql);
if (!sql_query.exec())
{
qDebug("Error: Fail to create test table.%s", sql_query.lastError().text());
}
else
{
qDebug("Table test created!");
}
如下图2所示,表“test”已经成功创建了


6、其它的增、删、改、查,也是一样,跟普通的sql语法一样,简单说一下插入操作,其它操作也是类似的
QSqlQuery sql_query;
create_sql = "insert into test values (?, ?);";
sql_query.prepare(create_sql);
sql_query.addBindValue("name1");
sql_query.addBindValue("value1");
if (!sql_query.exec())
{
qDebug("Error: Fail to insert to test table.%s", sql_query.lastError().text());
}
如图2所示,打开数据库是可以查看到插入的数据的

