【嵌入式学习】网络编程day0306

一、思维导图

二、练习

数据库操作的增、删、改完成

#include <myhead.h>
int add_db(sqlite3 *bbd)
{
	int ID;
	printf("请输入员工ID:");
	scanf("%d",&ID);
	char name[20]="";
	printf("请输入员工姓名:");
	scanf("%s",name);
	char post[20]="";
	printf("请输入员工岗位:");
	scanf("%s",post);
	float money;
	printf("请输入员工薪资:");
	scanf("%f",&money);
	char str[128]="";
	sprintf(str,"insert into company values (%d,\"%s\",\"%s\",%.2f);",ID,name,post,money);
	//	printf("str=%s\n",str);
	char *errmsg=NULL;
	if(sqlite3_exec(bbd,str,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		printf("打开错误,错误信息:%s\n",sqlite3_errmsg(bbd));
		sqlite3_free_table(&errmsg);
		errmsg=NULL;
		return -1;
	}
	printf("添加成功\n");
	return 0;
}

int del_db(sqlite3 *bbd)
{
	char name[20]="";
	printf("请输入删除员工姓名:");
	scanf("%s",name);
	char str[128]="";
	sprintf(str,"delete from company where name='%s';",name);
	printf("str=%s\n",str);
	char *errmsg=NULL;
	if(sqlite3_exec(bbd,str,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		printf("打开错误,错误信息:%s\n",sqlite3_errmsg(bbd));
		sqlite3_free_table(&errmsg);
	}
	printf("删除成功\n");
	return 0;
}
int chg_db(sqlite3 *bbd)
{
	int ID;
	printf("请输入员工ID:");
	scanf("%d",&ID);
	while(1)
	{
		printf("\t\t*****杨氏集团员工信息系统*****\n");
		printf("\t\t*****1、ID*****\n");
		printf("\t\t*****2、姓名*****\n");
		printf("\t\t*****3、岗位*****\n");
		printf("\t\t*****4、薪资*****\n");
		printf("\t\t*****0、返回*****\n");
		int key;
		printf("请输入需要修改的选项");
		scanf("%d",&key);
		switch(key)
		{
		case 1:
			{
				int chID;
				printf("请输入新ID:");
				scanf("%d",&chID);
				char str[128]="";
				sprintf(str,"update company set ID=%d where ID=%d;",chID,ID);
				char *errmsg=NULL;
				if(sqlite3_exec(bbd,str,NULL,NULL,&errmsg)!=SQLITE_OK)
				{
					printf("打开错误,错误信息:%s\n",sqlite3_errmsg(bbd));
					sqlite3_free_table(&errmsg);
				}
				printf("修改成功\n");

			}
			break;
		case 2:
			{
				char chname[20]="";;
				printf("请输入新姓名:");
				scanf("%s",chname);
				char str[128]="";
				sprintf(str,"update company set name=\"%s\" where ID=%d;",chname,ID);
				char *errmsg=NULL;
				if(sqlite3_exec(bbd,str,NULL,NULL,&errmsg)!=SQLITE_OK)
				{
					printf("打开错误,错误信息:%s\n",sqlite3_errmsg(bbd));
					sqlite3_free_table(&errmsg);
				}
				printf("修改成功\n");


			}
			break;
		case 3:
			{
				char chpost[20]="";
				printf("请输入新岗位:");
				scanf("%s",chpost);
				char str[128]="";
				sprintf(str,"update company set post=\"%s\" where ID=%d;",chpost,ID);
				char *errmsg=NULL;
				if(sqlite3_exec(bbd,str,NULL,NULL,&errmsg)!=SQLITE_OK)
				{
					printf("打开错误,错误信息:%s\n",sqlite3_errmsg(bbd));
					sqlite3_free_table(&errmsg);
				}
				printf("修改成功\n");


			}
			break;
		case 4:
			{
				float chmn;
				printf("请输入新薪资:");
				scanf("%f",&chmn);
				char str[128]="";
				sprintf(str,"update company set money=%.2f where ID=%d;",chmn,ID);
				char *errmsg=NULL;
				if(sqlite3_exec(bbd,str,NULL,NULL,&errmsg)!=SQLITE_OK)
				{
					printf("打开错误,错误信息:%s\n",sqlite3_errmsg(bbd));
					sqlite3_free_table(&errmsg);
				}
				printf("修改成功\n");
			}
			break;
		case 0:
			{
				goto A;
			}
		}
	}
A:
	return 0;
}

int main(int argc, const char *argv[])
{
	char str[128]="create table if not exists company (ID int,name char,post char,money float);";

	sqlite3 *kdb=NULL;
	if(sqlite3_open("./worker.db",&kdb)!=SQLITE_OK)
	{
		printf("打开错误,错误信息:%s\n",sqlite3_errmsg(kdb));
		return -1;
	}

	char *errmsg=NULL;
	if(sqlite3_exec(kdb,str,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		printf("打开错误,错误信息:%s\n",sqlite3_errmsg(kdb));
		sqlite3_free_table(&errmsg);
		errmsg=NULL;
		return -1;
	}
	printf("员工信息表创建成功\n");

	int key=-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***********4、查找员工信息***********\n");
		printf("\t\t***********0、退出系统***********\n");
		printf("请输入操作:");
		scanf("%d",&key);
		switch(key)
		{
		case 1:
			{
				add_db(kdb);
			}
			break;
		case 2:
			{
				del_db(kdb);
			}
			break;
		case 3:
			{
				chg_db(kdb);
			}
			break;
		case 4:
			{
				//			fnd_db();
			}
			break;
		case 0:
			{
				goto END;
			}
			break;
defalut:
			{
				printf("请重新输入正确操作\n");
			}
		}

	}
END:
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值