1.头文件
#ifndef CSQLITE_H
#define CSQLITE_H
#include <QSqlDatabase>
class CSqlite
{
public:
CSqlite();
bool OpenDatabase(const QString& name,
const QString& user = "",
const QString& password = ""); // 打开数据库
bool TableIsExist(const QString& table); // 判断表是否存在
bool ExecuteSql(const QString& sql); // 执行sql语句
private:
QSqlDatabase m_db;
};
#endif // CSQLITE_H
2.源文件
#include "csqlite.h"
#include <QSqlQuery>
#include <QVariant>
CSqlite::CSqlite()
{
}
bool CSqlite::OpenDatabase(const QString& name, const QString& user, const QString& password)
{
m_db = QSqlDatabase::addDatabase("QSQLITE");
m_db.setDatabaseName(name);
m_db.setUserName(user);
m_db.setPassword(password);
if(!m_db.open()) {
return false;
}
return true;
}
bool CSqlite::TableIsExist(const QString &table)
{
if(!m_db.open()) {
return false;
}
QSqlQuery query(m_db);
QString sql = "select name from sqlite_master where type='table'";
if(!query.exec(sql)) {
return false;
}
while (query.next()) {
if (query.value(0).toString() == table) {
return true;
}
}
return false;
}
bool CSqlite::ExecuteSql(const QString &sql)
{
if(!m_db.open()) {
return false;
}
QSqlQuery query(m_db);
return query.exec(sql);
}
3.使用
CSqlite sqlite;
sqlite.OpenDatabase("test.db", "hh", "03");
// 创建表
QString sql = "create table test("
"id varchar(32) not null primary key, "
"name varchar(32) not null,"
"status int default(2) not null)";
sqlite.ExecuteSql(sql);
// 更新表中记录
sql = "update test set name='xiao',status=6 where id='03'";
sqlite.ExecuteSql(sql);
// 删除表中记录
sql = "delete from test where id='03'";
sqlite.ExecuteSql(sql);
// 增加表中记录
sql = "insert into test(id, name, status) values('08','xiao', 6)";
sqlite.ExecuteSql(sql);
// 查询表中记录
sql = "select id, status from test";
sqlite.ExecuteSql(sql);