当前位置: 首页 > news >正文

2024.3.6

作业1:使用C语言完成数据库的增删改

#include <myhead.h>//定义添加员工信息函数
int Add_worker(sqlite3 *ppDb)
{//准备sql语句printf("请输入要添加的员工信息:\n");//从终端获取员工信息char rbuf[128]="";fgets(rbuf,sizeof(rbuf),stdin);rbuf[strlen(rbuf)-1]=0;char sql[128]="insert into worker values";strcat(sql,rbuf);//存放执行sql语句后的错误信息char *errmsg=NULL;if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg) != SQLITE_OK){printf("exec error:%s\n",errmsg);sqlite3_free(errmsg);      //防止内存泄露errmsg=NULL;return -1;}return 0;
}//定义删除员工信息函数
int del_worker(sqlite3 *ppDb)
{//准备sql语句int numb;printf("请输入要删除的员工工号:");scanf("%d",&numb);char sql[128]="";sprintf(sql,"delete from worker where numb=%d;",numb);//存放执行sql语句后的错误信息char *errmsg=NULL;if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg) != SQLITE_OK){printf("exec error:%s\n",errmsg);sqlite3_free(errmsg);      //防止内存泄露errmsg=NULL;return -1;}return 0;
}//定义修改员工信息函数
int modify_worker(sqlite3 *ppDb)
{//准备sql语句int numb;double salary;printf("请输入要修改的员工工号:");scanf("%d",&numb);getchar();printf("请输入要修改的工资:");scanf("%lf",&salary);getchar();char sql[128]="";sprintf(sql,"update worker set salary=%lf where numb=%d;",salary,numb);//存放执行sql语句后的错误信息char *errmsg=NULL;if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg) != SQLITE_OK){printf("exec error:%s\n",errmsg);sqlite3_free(errmsg);      //防止内存泄露errmsg=NULL;return -1;}return 0;
}/**********************************主程序***************************************/
int main(int argc, const char *argv[])
{//定义数据库句柄sqlite3 *ppDb=NULL;//打开数据库,不存在则创建if(sqlite3_open("./my.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[128]="create table if not exists worker(numb int,name char,salary double)";//存放执行sql语句后的错误信息char *errmsg=NULL;if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg) != SQLITE_OK){printf("exec error:%s\n",errmsg);sqlite3_free(errmsg);      //防止内存泄露errmsg=NULL;return -1;}printf("员工信息表创建成功\n");int menu=-1;     //菜单选项while(1){system("clear");     //清屏printf("\t\t*********员工管理系统*********\n");printf("\t\t*********1.添加员工信息*********\n");printf("\t\t*********2.删除员工信息*********\n");printf("\t\t*********3.修改员工信息*********\n");printf("\t\t*********0.退出管理系统*********\n");printf("请输入选项>>>");scanf("%d",&menu);getchar();switch(menu){case 1:{//添加员工信息Add_worker(ppDb);}break;case 2:{//删除员工信息del_worker(ppDb);}break;case 3:{//修改员工信息modify_worker(ppDb);}break;case 0://退出管理系统goto END;break;default:printf("输入的选项有误,请重新输入\n");break;}printf("按任意键清屏\n");while(getchar()!='\n');}
END://关闭数据库sqlite3_close(ppDb);return 0;
}

2. 

http://www.lryc.cn/news/312549.html

相关文章:

  • 抖音视频批量采集软件|视频评论下载工具
  • 苹果 Vision Pro零售部件成本价格分析
  • Seurat 中的数据可视化方法
  • ImportError: cannot import name ‘InterpolationMode‘
  • HSRP和VRRP
  • C及C++每日练习(1)
  • Oracle 12c dataguard查看主备库同步情况的新变化
  • 时间序列-AR MA ARIMA
  • Spring Boot(六十六):集成Alibaba Druid 连接池
  • leetcode 经典题目42.接雨水
  • 高防服务器的主要作用有哪些?
  • 【30 天 JavaScript 挑战】学习笔记
  • 生成 Linux/ubuntu/Debian 上已安装软件包的列表
  • 精品中国货出海wordpress外贸独立站建站模板
  • 使用Animated.View实现全屏页面可以向下拖动,松开手指页面返回原处的效果
  • 【教程】uni-app iOS打包解决profile文件与私钥证书不匹配问题
  • 预约自习室
  • 网络安全审计是什么意思?与等保测评有什么区别?
  • HarmonyOS学习——HarmonyOS习题
  • Python程序怎么让鼠标键盘在后台进行点击,不干扰用户其他鼠标键盘操作
  • HTML静态网页成品作业(HTML+CSS)——新年春节介绍网页设计制作(3个页面)
  • vue实现base64格式转换为图片
  • 【杂言】迟到的 2024 展望
  • 结构体(C语言进阶)(一)
  • 【react】对React Router的理解?常用的Router 组件有哪些
  • 生成式 AI
  • 云计算 3月6号 (crontab-计划任务 日志轮转 免密登录)
  • Windows Shell命令详解:入门指南
  • MogDB/openGauss关于PL/SQL匿名块调用测试
  • STP---生成树协议