2024.3.6

news2024/11/25 10:57:46

 利用c语言通过sqlite3实现数据库增删改查:

#include<myhead.h>
int  do_add(sqlite3 * ppDb)
{
	char sql_insert[128]="insert into worker values ";
	char info[500]="";
	printf("请输入要添加的员工信息:\n");
	scanf("%s",info);
	char *errmsg=NULL;//存放执行sql语句的错误信息
	if(sqlite3_exec(ppDb,strcat(sql_insert,info),NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		printf("exec error:%s\n",errmsg);
		sqlite3_free(errmsg);
		errmsg=NULL;
	 return -1;
	}else
	{
		printf("员工信息添加成功\n");
	}
}
int  do_delete(sqlite3 * ppDb)
{
	char sql_del[128]="delete from worker where numb=";
	char id[500]="";
	printf("请输入要删除的员工工号:\n");
	scanf("%s",id);
	char *errmsg=NULL;//存放执行sql语句的错误信息
	if(sqlite3_exec(ppDb,strcat(sql_del,id),NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		printf("exec error:%s\n",errmsg);
		sqlite3_free(errmsg);
		errmsg=NULL;
	 return -1;
	}else
	{printf("员工信息删除成功\n");
	}
}
int  do_update(sqlite3 * ppDb)
{
	char sql_update[128]="update worker set ";
	char ch[500]="";
	printf("请输入要修改的字段和修改后的值:\n");
	scanf("%s",ch);
	getchar();
	char con[10]=" where ";
	char c[10]="";
	printf("请输入限制条件\n");
	scanf("%s",c);
	getchar();
	char *errmsg=NULL;//存放执行sql语句的错误信息
	if(sqlite3_exec(ppDb,strcat(strcat(strcat(sql_update,ch),con),c),NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		printf("exec error:%s\n",errmsg);
		sqlite3_free(errmsg);
		errmsg=NULL;
	 return -1;
	}else
	{printf("员工信息更新成功\n");
	}
}
int  do_search(sqlite3 * ppDb)
{
	char sql_search[128]="select * from worker where numb=";
	char con[500]="";
	printf("请输入查找的员工工号:\n");
	scanf("%s",con);
	char *errmsg=NULL;//存放执行sql语句的错误信息
	if(sqlite3_exec(ppDb,strcat(sql_search,con),NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		printf("exec error:%s\n",errmsg);
		sqlite3_free(errmsg);
		errmsg=NULL;
	 return -1;
	}else
	{printf("员工信息查找成功\n");
	}
}
int main(int argc, const char *argv[])
{
	//定义数据库句柄指针
	sqlite3 *ppDb=NULL;
	//打开数据库,如果数据库不存在则创建数据库
	//将数据库句柄由参数2返回
	if(sqlite3_open("./my1.db",&ppDb)!=SQLITE_OK)
	{
		printf("sqlite3_open error,errcode=%d,errmsg=%s\n",\
				sqlite3_errcode(ppDb),sqlite3_errmsg(ppDb));
		return -1;
	}
	printf("sqlite3_open success\n");
	//创建数据表
	//准备sql语句
	char sql_create[128]="create table if not exists worker (numb int,name char,salary double)";
	char *errmsg=NULL;//存放执行sql语句的错误信息
	if(sqlite3_exec(ppDb,sql_create,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		printf("exec error:%s\n",errmsg);
		sqlite3_free(errmsg);
		errmsg=NULL;
		return -1;
	}
	printf("员工信息表创建成功\n");
	int menu=-1;
	for(;;)
	{
	//	system("clear");
		printf("1.添加\n 2.删除\n 3.更新\n 4.查找\n 0.退出\n");
		scanf("%d",&menu);
		switch(menu)
		{
case 1:
			{
				do_add(ppDb);
			}
			break;
		case 2:
			{
				do_delete(ppDb);
			}
			break;
				case 3:
			{
				do_update(ppDb);
			}
			break;
case 4:
			{
				do_search(ppDb);
			}
			break;
case 0:goto END;
		default:printf("cd error\n");
			}
	}
END:
	sqlite3_close(ppDb);
return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1494414.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android开发揭秘,我了解到的面试的一些小内幕

前言 尤其是在最近一段时间内&#xff0c;感觉一天天的时间过得又慢又快&#xff0c;慢的是感觉复工了以后在公司的8.9个小时简直算是煎熬了&#xff0c;快的是常常感觉时间一天天&#xff0c;一月月的过去了&#xff0c;可是发现自己还在原路踏步走。看似每天忙成狗&#xff…

大学四年我从非科班到互联网大厂之路

文章目录 一、两度高考、依然选错&#xff1f;二、初来乍到、陷入囹圄三、破局重生、从头再来四、找实习的坎坷之路五、提前结束实习&#xff0c;开始秋招六、秋招一路凯歌七、写在最后&#xff1a;人生是一场长久的旅途 很久没来CSDN上写过文章了&#xff0c;上一次写已经是20…

HTML静态网页成品作业(HTML+CSS)——新年春节介绍网页设计制作(3个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示1、首页2、子页13、子页2 三、代码目录四、网站代码HTML部分代码CSS部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0…

Android开发经典实战,Android面试题目

关于Android的近况 大家都知道&#xff0c;今年移动开发不那么火热了&#xff0c;完全没有了前两年Android开发那种火热的势头&#xff0c;如此同时&#xff0c;AI热火朝天&#xff0c;很多言论都说Android不行了。其实不光是Android&#xff0c;iOS也有类似的言论。 那么到底…

人工智能如何重新定义数据迁移:利用人工智能趋势实现工作空间的平稳过渡

【由于上篇文章中IAB关于数据迁移并没有讨论人工智能技术如何整整推动和影响未来的数据迁移工作&#xff0c;因此特整理了两篇前沿文章&#xff0c;供大家参考 - - 对第六篇关于数据迁移的一个补充&#xff08;1&#xff09;​​​​​​​】 拥抱变化&#xff1a;数据迁移的发…

案例介绍:信息抽取技术在汽车销售与分销策略中的应用与实践

一、引言 在当今竞争激烈的汽车制造业中&#xff0c;成功的销售策略、市场营销和分销网络的构建是确保品牌立足市场的关键。作为一名经验丰富的项目经理&#xff0c;我曾领导一个专注于汽车销售和分销的项目&#xff0c;该项目深入挖掘市场数据&#xff0c;运用先进的信息抽取…

C++学习第七天(string类)

1、学习string的原因&#xff1f; C语言中的字符串 C语言中&#xff0c;字符串是以‘\0’结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c;但是这些库函数与字符串是分离开的&#xff0c;而且底层空间需要用户自己管…

决策树实验分析(分类和回归任务,剪枝,数据对决策树影响)

目录 1. 前言 2. 实验分析 2.1 导入包 2.2 决策树模型构建及树模型的可视化展示 2.3 概率估计 2.4 绘制决策边界 2.5 决策树的正则化&#xff08;剪枝&#xff09; 2.6 对数据敏感 2.7 回归任务 2.8 对比树的深度对结果的影响 2.9 剪枝 1. 前言 本文主要分析了决策树的分类和回…

XSS漏洞--概念、类型、实战--分析与详解[结合靶场pikachu]

目录 一、XSS概念简述 1、XSS简介&#xff1a; 2、XSS基本原理&#xff1a; 3、XSS攻击流程&#xff1a; 4、XSS漏洞危害&#xff1a; 二、XSS类型&#xff1a; 1、反射型XSS&#xff1a; 2、存储型XSS&#xff1a; 3、DOM型XSS&#xff1a; 三、靶场漏洞复现(pikach…

C++(13)——string类

string类的由来 C语言中&#xff0c;字符串是以 \0‘ 结尾的一些字符的集合&#xff0c;为例操作方便&#xff0c;C标准库中提供了一些str 系列的库函数&#xff0c;但是这些库函数与字符串是分开的&#xff0c;不太符合OOP&#xff08;封装、继承和多态&#xff09;的思想&am…

云原生基础知识:容器技术的历史

容器化的定义&#xff1a; 容器化是一种轻量级的虚拟化技术&#xff0c;将应用程序及其所有依赖项&#xff08;包括运行时、系统工具、系统库等&#xff09;打包到一个称为容器的单独单元中。容器提供了一种隔离的执行环境&#xff0c;使得应用程序可以在不同的环境中运行&…

splay学习笔记重制版

以前写的学习笔记&#xff1a;传送门 但是之前写的比较杂乱&#xff0c;这里重制一下 问题背景 假设我们要维护一个数据结构&#xff0c;支持插入、删除、查询某个值的排名&#xff0c;查询第 k k k大的值等操作。 最直接的想法是用二叉搜索树&#xff0c;也就是左子树权值&l…

Java | 在消息对话框中显示文本

首先需要导入JOptionPane类&#xff0c;JOptionPane类属于Swing组件中的一种&#xff0c;其导入方式如下&#xff1a; import javax.swing.JOptionPane;可以使用JOptionPane的showMessageDialog方法显示消息文本。 参数格式&#xff1a; JOptionPane.showMessageDialog(paren…

jdk安装,配置path系统变量

直接点击安装 不要包含空格&#xff0c;中文字符 3.找到刚刚的路径&#xff0c;看一下&#xff0c;有东西就说明安装对了 配置path winr输入sysdm.cpl点击确定 全部依次点击 确定 即可。 验证jdk是否安装成功 看java、javac是否可用看java、javac版本号是否无问题 win…

解密程序员的“藏宝图”:我的祖传代码大公开

程序员是如何看待“祖传代码”的&#xff1f; 大家好&#xff0c;我是小明&#xff0c;一位充满好奇心和分享热情的程序员。今天&#xff0c;我要为大家揭开我心中的“藏宝图”——那些我认为值得传世的祖传代码。让我们一同踏上这场奇妙的代码冒险之旅吧&#xff01; 宝物一…

【广度优先搜索】【堆】【C++算法】407. 接雨水 II

作者推荐 【二分查找】【C算法】378. 有序矩阵中第 K 小的元素 本文涉及知识点 广度优先搜索 堆 LeetCoce407. 接雨水 II 给你一个 m x n 的矩阵&#xff0c;其中的值均为非负整数&#xff0c;代表二维高度图每个单元的高度&#xff0c;请计算图中形状最多能接多少体积的雨…

kerberos学习系列一:原理

1、简介 Kerberos 一词来源于古希腊神话中的 Cerberus —— 守护地狱之门的三头犬。 Kerberos 是一种基于加密 Ticket 的身份认证协议。Kerberos 主要由三个部分组成&#xff1a;Key Distribution Center (即KDC)、Client 和 Service。 优势&#xff1a; 密码无需进行网络传…

Tkinter实现聊天气泡对话框

功能展示&#xff1a; 运行环境&#xff1a; Python: 3.10.4 64-bit 操作系统&#xff1a;win10 64-bit 源码文件列表&#xff1a; 部分代码说明&#xff1a; 调用该接口将消息显示在聊天框中。role参数控制消息显示的位置&#xff1a;0位于对话框左边&#xff0c;1位于右边…

批次大小对ES写入性能影响初探

问题背景 ES使用bulk写入时每批次的大小对性能有什么影响&#xff1f;设置每批次多大为好&#xff1f; 一般来说&#xff0c;在Elasticsearch中&#xff0c;使用bulk API进行批量写入时&#xff0c;每批次的大小对性能有着显著的影响。具体来说&#xff0c;当批量请求的大小增…

LLM(十一)| Claude 3:Anthropic发布最新超越GPT-4大模型

2024年3月4日&#xff0c;Anthropic发布最新多模态大模型&#xff1a;Claude 3系列&#xff0c;共有Haiku、Sonnet和Opus三个版本。 Opus在研究生水平专家推理、基础数学、本科水平专家知识、代码等10个维度&#xff0c;超过OpenAI的GPT-4。 Haiku模型更注重效率&#xff0c;能…