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 ...
随机推荐
- CentOS使用日常
安装Teamview TeamViewer官网 下载rpm包 yum install -y teamviewer.x86_64.rpm 搞定 systemctl status firewalld #查 ...
- elk单机安装部署
es 下载地址:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.0-linux-x86_64.t ...
- mysql操作之密码的那点小事
mysql 修改密码的2种方式: 进入mysql库的user表中修改 update mysql.user password = password("新密码") where 条件; ...
- 1013 Battle Over Cities (25分) DFS | 并查集
1013 Battle Over Cities (25分) It is vitally important to have all the cities connected by highways ...
- Spring Boot 概括
Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 微服务 2014,martin fowler 微服务:架构风格 ...
- leetcode #980 不同路径||| (java)
在二维网格 grid 上,有 4 种类型的方格: 1 表示起始方格.且只有一个起始方格.2 表示结束方格,且只有一个结束方格.0 表示我们可以走过的空方格.-1 表示我们无法跨越的障碍.返回在四个方向 ...
- 基本使用-ElasticSearch
基本使用-ElasticSearch 说明:本篇文章主要是通过springboot整合es的基本使用基础,详细了解的可以看我上一篇文章:全文搜索-ElasticSearch 有朋友私信我上一篇没有环境 ...
- C语言for循环嵌套示例
打印九九乘法表 #include <stdio.h> int main() { int n,i,j; for (i=1;i<=9;i++) printf("%-4d&q ...
- Steam游戏《Zengeon(神明在上)》修改器制作-[先使用CE写,之后有时间的话改用C#](2020年寒假小目标06)
日期:2020.01.30 博客期:138 星期四 [温馨提示]: 只是想要修改器的网友,可以直接点击此链接下载: 只是想拿CT文件的网友,可以直接点击此链接下载: 没有博客园账号的网友,可以将页面下 ...
- 让UITextField全选
[textField selectAll:self];