C++连接sqlite数据库的增删查改操作
这个代码是接着上次说的,要用VS2013操作数据库,首先要配置好环境,创建好数据库表等。
不明白的翻我前面2篇看看~~~
关于前面的用到的goto 语句,这个我也是参考其他博主写的,现在我注释掉了,毕竟goto咱也不懂,哈哈哈~~~
下面给上我的代码,不出意外直接复制粘贴可以使用:
#define _CRT_SECURE_NO_WARNINGS
#include "stdafx.h"
#include "sqlite3.h"
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std; sqlite3 * pDB = NULL; //查找
bool SelectUser(); //增加
bool AddUser(const string& sName, const string& sFenshu); //删除
bool DeleteUser(const string& sName); //修改
bool ModifyUser(const string& sName, const string& sFenshu); int _tmain(int argc, _TCHAR* argv[])
{
//打开路径采用utf-8编码
//如果路径中包含中文,需要进行编码转换
int nRes = sqlite3_open("D:\\sqlite\\fuck.db;", &pDB);
if (nRes != SQLITE_OK)
{
cout << "Open database fail: " << sqlite3_errmsg(pDB);
//goto QUIT;
sqlite3_close(pDB);
}
else
{
system("color A");
cout << "打开数据库成功!" << endl;
cout << "**************************C++连接sqlite数据操作**************************" << endl;
cout << "1.查询" << endl;
cout << "2.添加" << endl;
cout << "3.删除" << endl;
cout << "4.修改" << endl;
cout << "0.退出" << endl;
cout << "**************************C++连接sqlite数据操作**************************" << endl;
cout << "请选择你需要的操作" << endl;
} int a;
char name[];
char fenshu[];
while (true)
{
cin >> a;
switch (a){
case :
cout << "你选择了查询" << endl;
SelectUser();
cout << "**************************请继续选择操作或/退出**************************" << endl;
break;
case :
cout << "你选择了添加" << endl;
cout << "*******************请输入你要添加的信息如:xiaoming,18*******************" << endl; //cin >> id;
cout << "name:" << endl;
scanf("%s",&name);
cout << "fenshu:" << endl;
scanf("%s",&fenshu);
//cout <<name << fenshu << endl;
if (AddUser(name,fenshu)){ cout << "添加成功!" << endl;
cout << "**************************请继续选择操作或/退出**************************" << endl;
}
break;
case :
cout << "你选择了删除" << endl;
cout << "********************请输入你要删除的信息如:xiaoming*********************" << endl;
//删除
cout << "name:" << endl;
scanf("%s", &name);
if (DeleteUser(name))
{
cout << "信息删除成功!" << endl;
cout << "**************************请继续选择操作或/退出**************************" << endl;
} break;
case :
cout << "你选择了修改" << endl;
cout << "*******************请输入你要修改的信息如:xiaoming,18*******************" << endl;
//cin >> id;
cout << "name:" << endl;
scanf("%s", &name);
cout << "fenshu:" << endl;
scanf("%s", &fenshu);
if (ModifyUser(name,fenshu))
{
cout << "信息修改成功!" << endl;
cout << "**************************请继续选择操作或/退出**************************" << endl;
}
break;
default:
cout << "你选择了退出" << endl;
cout << "goodbye" << endl;
exit(); } } //查找
/*if (!SelectUser())
{ goto QUIT;
}*/ QUIT:
sqlite3_close(pDB); return ;
} static int UserResult(void *NotUsed, int argc, char **argv, char **azColName)
{ for (int i = ; i < argc; i++)
{ cout << azColName[i] << " = " << (argv[i] ? argv[i] : "NULL") << ", ";
}
//sqlite3_free_table(azColName);
cout << endl;
return ;
} bool SelectUser()
{
char* cErrMsg; // int res = sqlite3_exec(pDB, "select student.id, student.name,score.fenshu from student, score WHERE student.id= score.id;", UserResult, 0, &cErrMsg);
int res = sqlite3_exec(pDB, "select * from score", UserResult, , &cErrMsg); if (res != SQLITE_OK)
{
cout << "select fail: " << cErrMsg << endl;
return false;
} return true;
} //添加数据
bool AddUser( const string& sName, const string& sFenshu)
{
string strSql = "";
strSql += "insert into score(name,fenshu)";
strSql += "values('";
strSql += sName;
strSql += "',";
strSql += sFenshu;
strSql += ");"; char* cErrMsg;
int nRes = sqlite3_exec(pDB, strSql.c_str(), , , &cErrMsg);
if (nRes != SQLITE_OK)
{
cout << "add score fail: " << cErrMsg << endl;
return false;
}
else
{
cout << "add score success: " << sName.c_str() << "\t" << sFenshu.c_str() << endl;
} return true;
} //删除数据
bool DeleteUser(const string& sName)
{
string strSql = "";
strSql += "delete from score where name='";
strSql += sName;
strSql += "';"; char* cErrMsg;
int nRes = sqlite3_exec(pDB, strSql.c_str(), , , &cErrMsg);
if (nRes != SQLITE_OK)
{
cout << "delete score fail: " << cErrMsg << endl;
return false;
}
else
{
cout << "delete score success: " << sName.c_str() << endl;
} return true;
} //修改数据
bool ModifyUser(const string& sName, const string& sFenshu)
{
string strSql = "";
strSql += "update score set fenshu =";
strSql += sFenshu;
strSql += " where name='";
strSql += sName;
strSql += "';"; char* cErrMsg;
int nRes = sqlite3_exec(pDB, strSql.c_str(), , , &cErrMsg);
if (nRes != SQLITE_OK)
{
cout << "modify score fail: " << cErrMsg << endl;
return false;
}
else
{
cout << "modify score success: " << sName.c_str() << "\t" << sFenshu.c_str() << endl;
} return true;
}
说明:score 是我自己 在fuck.db创建的表,你们可以自己创建,创建教程前面也有~~
运行界面:

C++连接sqlite数据库的增删查改操作的更多相关文章
- SSM框架-MyBatis框架数据库的增删查改操作
话不多说,在User.xml文件中主要写一下操作数据库的sql语句,增,删,查,改是最常见的数据库操作 User.xml文件下:
- Java连接MySQL数据库及简单的增删查改操作
主要摘自 https://www.cnblogs.com/town123/p/8336244.html https://www.runoob.com/java/java-mysql-connect.h ...
- MongoDB数据库(二):增删查改
MongoDB数据库的增删查改 1.插入数据 语法: db.集合名称.insert(document) db.table_name.insert({name:'gj',gender:1}) db.ta ...
- java实现简单的数据库的增删查改,并布局交互界面
一.系统简介 1.1.简介 本系统提供了学生信息管理中常见的基本功能,主要包括管理员.管理员的主要功能有对学生信息进行增加.删除.修改.查找等操作,对信息进行管理,对信息进行修改.查找等操作 ...
- 利用dbutils工具实现数据的增删查改操作(dbutis入门)
一.前期准备 1.安装数据库(如:mysql5.5) 2.安装Eclipse(如:3.4) 3.下载数据库驱动包 4.下载dbutis工具包 5.在Eclipse创建名为 dbutils 的工程并在工 ...
- Mybatis基础配置及增删查改操作
一.简介 平时我们都用JDBC访问数据库,除了需要自己写SQL之外,还必须操作Connection, Statement, ResultSet 这些其实只是手段的辅助类. 不仅如此,访问不同的表,还会 ...
- PHP与MYSQL结合操作——文章发布系统小项目(实现基本增删查改操作)
php和mysql在一起几十年了,也是一对老夫老妻了,最近正在对他们的爱情故事进行探讨,并做了一个很简单的小东西——文章发布系统,目的是为了实现mysql对文章的基本增删查改操作 前台展示系统有:文章 ...
- 在Eclipse上实现简单的JDBC增删查改操作
在Javaweb的学习里,学到了如何完成简单的增删查改操作,在这里撰写一篇文章以便自己整理回忆. 首先要建立一些包和导入一些文件.建一些类.具体框架如图 编写Product类 public clas ...
- [课本]JDBC课程6--使用JDBC的DAO模块化--完成数据库的增删查改_工具类JDBCTools四个(Preparedstatement)功能模块的敲定版
(课本P273-任务九) /**DAO: Data Access Object * 为什么用: 实现功能的模块化,更有利于代码的维护和升级 * 是什么: 访问数据信息的类,包含对数据的CRUD(cre ...
随机推荐
- 夯实Java基础(二十二)——Java8新特性之Lambda表达式
1.前言 Java 8于14年发布到现在已经有5年时间了,经过时间的磨练,毫无疑问,Java 8是继Java 5(发布于2004年)之后的又一个非常最重要的版本.因为Java 8里面出现了非常多新的特 ...
- 时间和日期-<Date和SimpleDateFormat>
第一步.定义一个Date //获取当前时间 Date now=new Date(); 第二步.定义一个SimpleDateFormat //规范时间格式 SimpleDateFormat date=n ...
- 使用eclipse部署springcloud config从GitHub上获取配置内容出现错误:Auth fail
Eclipse点击Window > Preferences > General > Network Connections > SSH2 点击"Key Managem ...
- 什么是Device ID?
Android ID用于唯一识别一部设备的一次刷机行为,虽然不能完全确定该设备的唯一性(真的唯一性是用IMEI号的),但是可以很大程度上过滤重复设备.这是移动互联网广告行业的基础,尤其是CPI广告,设 ...
- Navicat相关注册码
用户名和组织随便起. 注册码如下 --Navicat for SQL Server V10.0.10 NAVD-3CG2-6KRN-IEPM NAVL-NIGY-6MYY-XWQE NAVI-C3UU ...
- Scrapy 常用的shell执行命令
1.在任意系统下,可以使用 pip 安装 Scrapy pip install scrapy/ 确认安装成功 >>> import scrapy >>> scrap ...
- 吴裕雄--天生自然HADOOP学习笔记:Shell工具使用
实验目的 学习使用xshell工具连接Linux服务器 在连上的服务器中进入用户目录 熟悉简单的文件操作命令 实验原理 熟悉shell命令是熟悉使用linux环境进行开发的第一步,我们在linux的交 ...
- PLSQL设置显示的字符集及设置
一.关于PLSQL无法正确显示中文 刚才下载安装了PLSQL Developer 9.0.0.1601 汉化绿色版,执行SQL查询语句,发现显示的数据中只要有中文都会以?表示.经过网上查询得知这是客户 ...
- Python作业篇 day03
###一.有变量name = 'aleX leNb',完成如下的操作 name = 'aleX leNb' name1 = ' aleX leNb ' #1.移除name1 变量对应的值两边的空格 , ...
- 常用命令提示符(cmd)
MS-DOS(Microsoft Disk Operation System)命令提示符(cmd) 启动: win+ R 输入cmd回车切换盘符 盘符名称:进入文件夹 cd 文件夹名称进入多级 ...