这个代码是接着上次说的,要用VS2013操作数据库,首先要配置好环境,创建好数据库表等。

不明白的翻我前面2篇看看~~~

关于前面的用到的goto 语句,这个我也是参考其他博主写的,现在我注释掉了,毕竟goto咱也不懂,哈哈哈~~~

下面给上我的代码,不出意外直接复制粘贴可以使用:

  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include "stdafx.h"
  3. #include "sqlite3.h"
  4. #include <iostream>
  5. #include <string>
  6. #include <Windows.h>
  7. using namespace std;
  8.  
  9. sqlite3 * pDB = NULL;
  10.  
  11. //查找
  12. bool SelectUser();
  13.  
  14. //增加
  15. bool AddUser(const string& sName, const string& sFenshu);
  16.  
  17. //删除
  18. bool DeleteUser(const string& sName);
  19.  
  20. //修改
  21. bool ModifyUser(const string& sName, const string& sFenshu);
  22.  
  23. int _tmain(int argc, _TCHAR* argv[])
  24. {
  25. //打开路径采用utf-8编码
  26. //如果路径中包含中文,需要进行编码转换
  27. int nRes = sqlite3_open("D:\\sqlite\\fuck.db;", &pDB);
  28. if (nRes != SQLITE_OK)
  29. {
  30. cout << "Open database fail: " << sqlite3_errmsg(pDB);
  31. //goto QUIT;
  32. sqlite3_close(pDB);
  33. }
  34. else
  35. {
  36. system("color A");
  37. cout << "打开数据库成功!" << endl;
  38. cout << "**************************C++连接sqlite数据操作**************************" << endl;
  39. cout << "1.查询" << endl;
  40. cout << "2.添加" << endl;
  41. cout << "3.删除" << endl;
  42. cout << "4.修改" << endl;
  43. cout << "0.退出" << endl;
  44. cout << "**************************C++连接sqlite数据操作**************************" << endl;
  45. cout << "请选择你需要的操作" << endl;
  46. }
  47.  
  48. int a;
  49. char name[];
  50. char fenshu[];
  51. while (true)
  52. {
  53. cin >> a;
  54. switch (a){
  55. case :
  56. cout << "你选择了查询" << endl;
  57. SelectUser();
  58. cout << "**************************请继续选择操作或/退出**************************" << endl;
  59. break;
  60. case :
  61. cout << "你选择了添加" << endl;
  62. cout << "*******************请输入你要添加的信息如:xiaoming,18*******************" << endl;
  63.  
  64. //cin >> id;
  65. cout << "name:" << endl;
  66. scanf("%s",&name);
  67. cout << "fenshu:" << endl;
  68. scanf("%s",&fenshu);
  69. //cout <<name << fenshu << endl;
  70. if (AddUser(name,fenshu)){
  71.  
  72. cout << "添加成功!" << endl;
  73. cout << "**************************请继续选择操作或/退出**************************" << endl;
  74. }
  75. break;
  76. case :
  77. cout << "你选择了删除" << endl;
  78. cout << "********************请输入你要删除的信息如:xiaoming*********************" << endl;
  79. //删除
  80. cout << "name:" << endl;
  81. scanf("%s", &name);
  82. if (DeleteUser(name))
  83. {
  84. cout << "信息删除成功!" << endl;
  85. cout << "**************************请继续选择操作或/退出**************************" << endl;
  86. }
  87.  
  88. break;
  89. case :
  90. cout << "你选择了修改" << endl;
  91. cout << "*******************请输入你要修改的信息如:xiaoming,18*******************" << endl;
  92. //cin >> id;
  93. cout << "name:" << endl;
  94. scanf("%s", &name);
  95. cout << "fenshu:" << endl;
  96. scanf("%s", &fenshu);
  97. if (ModifyUser(name,fenshu))
  98. {
  99. cout << "信息修改成功!" << endl;
  100. cout << "**************************请继续选择操作或/退出**************************" << endl;
  101. }
  102. break;
  103. default:
  104. cout << "你选择了退出" << endl;
  105. cout << "goodbye" << endl;
  106. exit();
  107.  
  108. }
  109.  
  110. }
  111.  
  112. //查找
  113. /*if (!SelectUser())
  114. {
  115.  
  116. goto QUIT;
  117. }*/
  118.  
  119. QUIT:
  120. sqlite3_close(pDB);
  121.  
  122. return ;
  123. }
  124.  
  125. static int UserResult(void *NotUsed, int argc, char **argv, char **azColName)
  126. {
  127.  
  128. for (int i = ; i < argc; i++)
  129. {
  130.  
  131. cout << azColName[i] << " = " << (argv[i] ? argv[i] : "NULL") << ", ";
  132. }
  133. //sqlite3_free_table(azColName);
  134. cout << endl;
  135. return ;
  136. }
  137.  
  138. bool SelectUser()
  139. {
  140. char* cErrMsg;
  141.  
  142. // int res = sqlite3_exec(pDB, "select student.id, student.name,score.fenshu from student, score WHERE student.id= score.id;", UserResult, 0, &cErrMsg);
  143. int res = sqlite3_exec(pDB, "select * from score", UserResult, , &cErrMsg);
  144.  
  145. if (res != SQLITE_OK)
  146. {
  147. cout << "select fail: " << cErrMsg << endl;
  148. return false;
  149. }
  150.  
  151. return true;
  152. }
  153.  
  154. //添加数据
  155. bool AddUser( const string& sName, const string& sFenshu)
  156. {
  157. string strSql = "";
  158. strSql += "insert into score(name,fenshu)";
  159. strSql += "values('";
  160. strSql += sName;
  161. strSql += "',";
  162. strSql += sFenshu;
  163. strSql += ");";
  164.  
  165. char* cErrMsg;
  166. int nRes = sqlite3_exec(pDB, strSql.c_str(), , , &cErrMsg);
  167. if (nRes != SQLITE_OK)
  168. {
  169. cout << "add score fail: " << cErrMsg << endl;
  170. return false;
  171. }
  172. else
  173. {
  174. cout << "add score success: " << sName.c_str() << "\t" << sFenshu.c_str() << endl;
  175. }
  176.  
  177. return true;
  178. }
  179.  
  180. //删除数据
  181. bool DeleteUser(const string& sName)
  182. {
  183. string strSql = "";
  184. strSql += "delete from score where name='";
  185. strSql += sName;
  186. strSql += "';";
  187.  
  188. char* cErrMsg;
  189. int nRes = sqlite3_exec(pDB, strSql.c_str(), , , &cErrMsg);
  190. if (nRes != SQLITE_OK)
  191. {
  192. cout << "delete score fail: " << cErrMsg << endl;
  193. return false;
  194. }
  195. else
  196. {
  197. cout << "delete score success: " << sName.c_str() << endl;
  198. }
  199.  
  200. return true;
  201. }
  202.  
  203. //修改数据
  204. bool ModifyUser(const string& sName, const string& sFenshu)
  205. {
  206. string strSql = "";
  207. strSql += "update score set fenshu =";
  208. strSql += sFenshu;
  209. strSql += " where name='";
  210. strSql += sName;
  211. strSql += "';";
  212.  
  213. char* cErrMsg;
  214. int nRes = sqlite3_exec(pDB, strSql.c_str(), , , &cErrMsg);
  215. if (nRes != SQLITE_OK)
  216. {
  217. cout << "modify score fail: " << cErrMsg << endl;
  218. return false;
  219. }
  220. else
  221. {
  222. cout << "modify score success: " << sName.c_str() << "\t" << sFenshu.c_str() << endl;
  223. }
  224.  
  225. return true;
  226. }

说明:score 是我自己 在fuck.db创建的表,你们可以自己创建,创建教程前面也有~~

运行界面:

C++连接sqlite数据库的增删查改操作的更多相关文章

  1. SSM框架-MyBatis框架数据库的增删查改操作

    话不多说,在User.xml文件中主要写一下操作数据库的sql语句,增,删,查,改是最常见的数据库操作 User.xml文件下:

  2. Java连接MySQL数据库及简单的增删查改操作

    主要摘自 https://www.cnblogs.com/town123/p/8336244.html https://www.runoob.com/java/java-mysql-connect.h ...

  3. MongoDB数据库(二):增删查改

    MongoDB数据库的增删查改 1.插入数据 语法: db.集合名称.insert(document) db.table_name.insert({name:'gj',gender:1}) db.ta ...

  4. java实现简单的数据库的增删查改,并布局交互界面

        一.系统简介 1.1.简介  本系统提供了学生信息管理中常见的基本功能,主要包括管理员.管理员的主要功能有对学生信息进行增加.删除.修改.查找等操作,对信息进行管理,对信息进行修改.查找等操作 ...

  5. 利用dbutils工具实现数据的增删查改操作(dbutis入门)

    一.前期准备 1.安装数据库(如:mysql5.5) 2.安装Eclipse(如:3.4) 3.下载数据库驱动包 4.下载dbutis工具包 5.在Eclipse创建名为 dbutils 的工程并在工 ...

  6. Mybatis基础配置及增删查改操作

    一.简介 平时我们都用JDBC访问数据库,除了需要自己写SQL之外,还必须操作Connection, Statement, ResultSet 这些其实只是手段的辅助类. 不仅如此,访问不同的表,还会 ...

  7. PHP与MYSQL结合操作——文章发布系统小项目(实现基本增删查改操作)

    php和mysql在一起几十年了,也是一对老夫老妻了,最近正在对他们的爱情故事进行探讨,并做了一个很简单的小东西——文章发布系统,目的是为了实现mysql对文章的基本增删查改操作 前台展示系统有:文章 ...

  8. 在Eclipse上实现简单的JDBC增删查改操作

    在Javaweb的学习里,学到了如何完成简单的增删查改操作,在这里撰写一篇文章以便自己整理回忆. 首先要建立一些包和导入一些文件.建一些类.具体框架如图  编写Product类 public clas ...

  9. [课本]JDBC课程6--使用JDBC的DAO模块化--完成数据库的增删查改_工具类JDBCTools四个(Preparedstatement)功能模块的敲定版

    (课本P273-任务九) /**DAO: Data Access Object * 为什么用: 实现功能的模块化,更有利于代码的维护和升级 * 是什么: 访问数据信息的类,包含对数据的CRUD(cre ...

随机推荐

  1. 关于java程序在运行时出现a java exception has occured时解决方法

    错误截图: 出现情况原因分析: 1.环境没有配置好,配置java环境变量: 参考 检查是否正确,java javac,可以尝试重新 2.查看使用的jdk版本是否存在版本问题: 例如jdk1.7对中文的 ...

  2. 夯实Java基础(二十四)——Java8新特征之Optional类

    1.概述 对于Java程序员来说,到目前为止出现次数最多的应该是NullpointException,它是导致Java应用程序失败的最常见原因.之前处理空指针我们必须先通过条件先去判断,然后再确认是否 ...

  3. python爬虫(五) ProxyHandler处理器

    ProxyHandler处理器 一.如果我们在一段时间内用某个ip地址访问了一个网站次数过多,网站就检测到不正常,就会禁止这个ip地址的访问.所以我们可以设置一些代理服务器,每段时间换个代理,就算ip ...

  4. SpringMvc 初步配置

    spring-aop.jarspring-bean.jarspring-context.jarspring-core.jarspring-web.jarspring-webmvc.jarcommons ...

  5. Spark入门:第2节 Spark集群安装:1 - 3;第3节 Spark HA高可用部署:1 - 2

    三. Spark集群安装 3.1 下载spark安装包 下载地址spark官网:http://spark.apache.org/downloads.html 这里我们使用 spark-2.1.3-bi ...

  6. LCS(最长公共子序列)

    这个问题很有意思,在生物应用中,经常需要比较两个(或多个)不同生物体的DNA片段.例如,某种生物的DNA可能为S1 = ACCGGTCGAGTGCGCGGAAGCCGGCCGAA,S2 = GTCGT ...

  7. 微信红包系统设计 & 优化

    微信红包系统设计 & 优化 浏览次数:151次 腾讯大讲堂 2015年04月02日 字号: 大 中 小 分享到:QQ空间新浪微博腾讯微博人人网豆瓣网开心网更多0   编者按:经过2014年一年 ...

  8. 最新获取SkyDrive音乐外链mp3地址方法20131003

    最新获取SkyDrive音乐外链方法20131003在文章底部更新,欢迎使用! 这已经是第三次写获取SkyDrive音乐外链mp3地址方法的文章了,因为第一次.第二次都失效了.三篇文章都有个共同点,都 ...

  9. sqlserver 面试题

    1. --是查询A(ID,Name)表中第11至20条记录,ID作为主键可能是不是连续增长的列,完整的查询语句如下: SELECT TOP 10 * FROM dbo.Employee WHERE E ...

  10. 十 Restful风格

    1 restful风格化,url上的参数通过{}点符绑定,RequestMapping("item/{id}") 2 点位符参数名与方法参数名不一致时,通过@PathVariabl ...