[代码] mydata.h

10 #ifndef MYDATA_H
11 #define MYDATA_H
12 #include <QObject>
13 #include <QString>
14 #include <QtSql/QSqlTableModel>
15 #include <QtSql/QSqlQuery>
16 #include <QStringList>
17 #include <QtSql/QSqlDatabase>
18  
19 class mydata : public QObject
20 {
21     Q_OBJECT
22 public:
23     explicit mydata(QObject *parent = 0);
24     ~mydata();
25     void SetTableName(QString table);
26     bool opendatabase();
27  
28     bool insert(QString &table, QStringList &names,QStringList &values);
29  
30     bool Updata(QString &table, QStringList &names,QStringList &values, QString &expression);
31  
32     bool del(QString &table, QString &expression);
33  
34     void GetValues(QString &table, QStringList &values);
35 private:
36     QSqlTableModel *model;
37     QSqlDatabase _db;
38     QString _tableName;
39  
40 };
41  
42 #endif // MYDATA_H
 mydata.cpp 
001 /****************************************************************************
002 **
003 ** Copyright (C) 2013 C,g
004 ** All rights reserved.
005 ** Contact: 1213125967@qq.com
006 ** Please keep the author contact information.
007 ** 2013-10-31
008 **
009 ****************************************************************************/
010 #include <QtSql/QSqlQuery>
011 #include <QObject>
012 #include "mydata.h"
013  
014 mydata::mydata(QObject *parent) :
015     QObject(parent)
016 {
017  
018 }
019  
020 mydata::~mydata()
021 {
022     _db.close();
023 }
024  
025 void mydata::SetTableName(QString table)
026 {
027     _tableName = table + ".db";
028 }
029  
030 /*
031     打开数据库.
032 */
033 bool mydata::opendatabase()
034 {
035     _db = QSqlDatabase::addDatabase("QSQLITE");
036     _db.setDatabaseName(_tableName);
037     return _db.open();
038 }
039  
040 /*
041     插入函数.
042     构造SQL插入语句.
043 */
044 bool mydata::insert(QString &table, QStringList &names, QStringList &values)
045 {
046     if (names.size() != values.size())
047     {
048         return false;
049     }
050  
051     QSqlQuery query(QSqlDatabase::database());
052  
053     QString sql = QString("insert into ") + table + QString("(");
054  
055     int i;
056  
057     for (i=0; i < names.size(); i++)
058     {
059         sql = sql + names.value(i);
060         if (i != names.size() - 1)
061         {
062             sql+=QString(",");
063         }
064         else
065         {
066  
067             sql = sql + QString(")");
068         }
069     }
070  
071     sql = sql + QString("values (");
072  
073     for (i = 0; i < values.size(); i++)
074     {
075         sql = sql + QString("'") + values.value(i) + QString("'");
076         if (i != values.size()-1)
077         {
078             sql = sql + QString(",");
079         }
080     }
081  
082     sql = sql + QString(")");
083  
084     if (query.exec(sql))
085     {
086         return true;
087     }
088     else
089     {
090         return false;
091     }
092 }
093  
094 /*
095     修改函数.
096     构造SQL修改语句.
097 */
098 bool mydata::Updata(QString &table, QStringList &names, QStringList &values, QString &expression)
099 {
100     if (names.size() != values.size())
101     {
102         return false;
103     }
104  
105     //UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
106     QSqlQuery query(QSqlDatabase::database());
107     QString sql = QString("update ")+table+QString(" set ");
108     for (int i = 0; i < names.size(); i++)
109     {
110         sql = sql + names.value(i);
111         sql = sql + QString(" = '");
112         sql = sql + values.value(i);
113         sql = sql + QString("'");
114         if (i != names.size()-1)
115         {
116             sql = sql + QString(" ,");
117         }
118     }
119  
120     sql = sql + QString(" where ") + expression;
121     if (query.exec(sql))
122     {
123         return true;
124     }
125     else
126     {
127         return false;
128     }
129 }
130  
131 /*
132     删除函数.
133     构造SQL删除语句.
134 */
135 bool mydata::del(QString &table, QString &expression)
136 {
137     //DELETE FROM 表名称 WHERE 列名称 = 值
138     QSqlQuery query(QSqlDatabase::database());
139     QString sql = QString("delete from ") + table + QString(" where ") + expression;
140  
141     if (query.exec(sql))
142     {
143         return true;
144     }
145     else
146     {
147         return false;
148     }
149 }
150  
151 void mydata::GetValues(QString &table, QStringList &values)
152 {
153     QSqlQuery query(QSqlDatabase::database());
154     QString sql = QString("select * from ") + table;
155     query.exec(sql);
156     while (query.next())
157     {
158         values << query.value(0).toString();
159     }
160 }

基于sqlite的Qt 数据库封装的更多相关文章

  1. Qt基于sqlite数据库的管理小软件

    闲来无事,写了一个基于sqlite的数据库管理小软件. 先上图 中心思想就是: 创建一个数据库 然后每一个分组对应一个数据表 然后遍历该数据表.将名字以treewidgetItem显示出来.添加删除实 ...

  2. 适用于app.config与web.config的ConfigUtil读写工具类 基于MongoDb官方C#驱动封装MongoDbCsharpHelper类(CRUD类) 基于ASP.NET WEB API实现分布式数据访问中间层(提供对数据库的CRUD) C# 实现AOP 的几种常见方式

    适用于app.config与web.config的ConfigUtil读写工具类   之前文章:<两种读写配置文件的方案(app.config与web.config通用)>,现在重新整理一 ...

  3. 基于sqlitecpp的sqlite3 c++封装

    Github: 人富水也甜 感谢GitHub大佬: sqlitecpp github:  https://github.com/SRombauts/SQLiteCpp sqlite: https:// ...

  4. Asp.Net Core 2.0 项目实战(4)ADO.NET操作数据库封装、 EF Core操作及实例

    Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...

  5. 基于C#的MongoDB数据库开发应用(2)--MongoDB数据库的C#开发

    在上篇博客<基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用>里面,我总结了MongoDB数据库的一些基础信息,并在最后面部分简单介绍了数据库C#驱动的 ...

  6. qt数据库多线程问题的解决(QSqlDatabase只能在创建它的线程中使用)

    Qt数据库由QSqlDatabase::addDatabase()生成的QSqlDatabase只能在创建它的线程中使用, 在多线程中共用连接或者在另外一个线程中创建query都是不支持的几乎国内没有 ...

  7. Qt添加驱动——Qt数据库之添加MySQL驱动插件

    Qt数据库之添加MySQL驱动插件(1) 现在可用的数据库驱动只有3种,在Qt中,我们需要自己编译其他数据库驱动的代码,让它们以插件的形式来使用.下面我们就以现在比较流行的MySQL数据库为例,说明一 ...

  8. Qt数据库_资料

    1. QT笔记_数据库总结(一)-rojian-ChinaUnix博客.html http://blog.chinaunix.net/uid-28194872-id-3631462.html (里面有 ...

  9. Qt——数据库编程

    一.概述 Qt提供了一个类似JDBC的数据库接口,需要为每个可以连接的特定数据库提供驱动程序,可以通过 QStringList QSqlDatabase::drivers() 知道当前版本的Qt哪些驱 ...

随机推荐

  1. linux命令 screen的简单使用

    在远程命令行下某些长时间的操作,一旦网络出现故障,后果可能会很严重,在这种情况下可以使用screen命令来解决.screen可以创建一个session,在不小心断开以后还可以继续恢复session保存 ...

  2. 僵尸进程&孤儿进程

    http://www.cnblogs.com/Anker/p/3271773.html

  3. Educational Codeforces Round 5 A. Comparing Two Long Integers

    A. Comparing Two Long Integers time limit per test 2 seconds memory limit per test 256 megabytes inp ...

  4. 第三百二十四天 how can I 坚持

    下午去打了会篮球,好累,又把android开发环境搭建起来了,明天把天气应用搞起来. 今天老妈打电话说昨晚梦到我小时候了.. 是啊,都这么大了,不能让他们老操心了. 过两天买根鱼竿去钓鱼. 睡觉.

  5. 【转】大数据以及Hadoop相关概念介绍

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4230220.html 感谢! 一.大数据的基本概念 1.1.什么是大数据 大数据指的就是要处理的数据是TB级别以 ...

  6. HDU 5857 Median (推导)

    Median 题目链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=5857 Description There is a sorted sequ ...

  7. rdlc Report Viewer Configuration Error

    主要是web.config没有配置 方法参考http://msdn.microsoft.com/zh-cn/library/ms251661.aspx

  8. JavaScript面向对象简介

    JavaScript面向对象简介 @(编程) [TOC] 1. 命名空间 命名空间是一个容器,它允许开发人员在一个独特的,特定于应用程序的名称下捆绑所有的功能. 在JavaScript中,命名空间只是 ...

  9. Cisco asa 5510升级IOS和ASDM

    asa asa(config)# dir                                                                                 ...

  10. iisapp 命令 弹出 iisschlp.wsc [88,25] 属性值无效 progid

    iisapp 命令 弹出 iisschlp.wsc [88,25] 属性值无效 progid 在执行iisapp.vbs时,可能会提示如下错误:Windows Script Component - f ...