#include <QSqlQuery>
#include <QtDebug>
#include <QVariant>
这些是包含的头文件.
当然你的 xxx.pro 中要添加 QT += sql .
static QSqlDatabase db;
// 创建一个数据连接.
db = QSqlDatabase::addDatabase("QSQLITE", "program_db");
// 第一个参数为连接使用的驱动器的类型,类型有以下几种
// 第二个参数为连接名称 ,也可以不写为默认.
Driver Type Description
QDB2 IBM DB2
QIBASE Borland InterBase Driver
QMYSQL MySQL Driver
QOCI Oracle Call Interface Driver
QODBC ODBC Driver (includes Microsoft SQL Server)
QPSQL PostgreSQL Driver
QSQLITE SQLite version 3 or above
QSQLITE2 SQLite version 2
QTDS Sybase Adaptive Server
// 设置数据库名字. 注意和连接名称区别开来.
db.setDatabaseName("/conf/program.db");
// 取得数据库连接.
QSqlDatabase db = QSqlDatabase::database():
// 这是默认不写连接名字的,如果你addDatabase 时候指定了连接名,那么
QSqlDatabase db = QSqlDatabase::database("program_db"):
// 取得之后要打开连接的数据库
if (!db.open()) // 判断是否成功 这是编程的良好习惯,切记!
{
// you want to do something.
}
// 关闭数据库.
db.close();
// 操作数据库 首先.
QSqlQuery query(db);
// 增 删 查 除 各举一个例子
// 查找
query.prepare("SELECT count(*) FROM setting");
if(query.exec()) // 判断是否执行成功.
{
}
// 插入
query.prepare("INSERT INTO setting (key, value) “
"VALUES(?,?)");
query.addBindValue(key); // 添加你的 key 值
query.addBindValue(value); // 添加你的 value 值
if(query.exec()) // 判断是否执行成功.
{
}
// 更新
query.prepare("UPDATE dvb_sat SET name=?");
query.addBindValue(name); // 添加你的name 值
if(query.exec()) // 判断是否执行成功.
{
}
// 删除
query.prepare("DELETE FROM dvb_sat WHERE id=?");
query.addBindValue(id); // 添加你的id 值
if(query.exec()) // 判断是否执行成功.
{
}
// 获取下一个数据
while(query.next()) {
}
// 取得一个数据中的第几项
query.value( Int index);
// 再来一个创建表的.
ret = query.exec("CREATE TABLE dvb_sat("
"id INTEGER PRIMARY KEY AUTOINCREMENT,"
"name VARCHAR(16),"
"lnb_type BOOLEAN,"
"lnb INTEGER,"
"lnb_dual INTEGER,"
"skew BOOLEAN,"
"tone INTEGER,"
"diseqc INTEGER,"
"power BOOLEAN"
")");
// 移除数据库
QSqlDatabase::removeDatabase("program_db"); // 这是设置有连接名的
// 当然还有很多,可以参考官方文档,这里就简单的介绍下 入门.
// ThankYou !