本来想自己封装一下sqlite操作类 写到一半才发现是脱裤子放屁 多此一举了
自己写的东西还没有Qt用起来简洁 唯一的好处估计就是能在整个工程里对同一个数据库进行操作 能通过QDir查找指定目录下的数据库文件 绑定到comboBox让用户手动选择操作的数据库 有空再添加以下数据库的备份函数 其实思路也就是文件另存为
一下代码贴出来自嘲一下 唉
.h文件
#ifndef sqlITEDB_H #define sqlITEDB_H #include <QString> #include <Qtsql> class sqliteDB { public: sqliteDB(); sqliteDB(QString dbname); static void setDbName(QString name); static QString getDbName(); QStringList findDbfiles(); bool connDb(); QsqlQuery search(QString sql_string); void closeDb(); private: static QString DbName; QsqlDatabase dbconn; }; #endif // sqlITEDB_H
.cpp文件
#include "sqlitedb.h" #include <QDir> QString sqliteDB::DbName=""; sqliteDB::sqliteDB() { dbconn = QsqlDatabase::addDatabase("QsqlITE"); dbconn.setDatabaseName("./DbfInUse/"+sqliteDB::DbName); } sqliteDB::sqliteDB(QString dbname) { dbconn = QsqlDatabase::addDatabase("QsqlITE"); dbconn.setDatabaseName(dbname); } void sqliteDB::setDbName(QString name) { sqliteDB::DbName=name; } QString sqliteDB::getDbName() { return DbName; } QStringList sqliteDB::findDbfiles() { QDir dir; dir.setPath("./DbfInUse"); dir.setFilter(QDir::Files | QDir::Hidden); dir.setSorting(QDir::Name); QStringList names = dir.entryList(); QStringList newnames; newnames=names.filter(".dbf"); return newnames; } bool sqliteDB::connDb() { if(!dbconn.open()) { return false; } else { return true; } } QsqlQuery sqliteDB::search(QString sql_string) { QsqlQuery query; query.exec(sql_string); return query; } void sqliteDB::closeDb() { dbconn.close(); }