网络编程作业day6

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

#include <myhead.h>

//查询的回调函数
int callback(void* data,int count,char** argv, char** columnName)
{
	//count是字段数
	//argv是字段内容
	//columnName是字段名称
    for(int i=0;i<count;i++) 
    {
        printf("%s=%s\n", columnName[i], argv[i] ? argv[i] : "NULL");
    }
    puts("");
    return 0;
}
int main(int argc, const char *argv[])
{
	//定义数据库句柄指针
	sqlite3 *ppfd=NULL;
	//打开一个数据库,如果不存在则创建并打开
	if(sqlite3_open("./my.db",&ppfd)!=SQLITE_OK)
	{
		printf("sqlite3_open error,errcode\n");
		return -1;
	}
	puts("数据库打开成功");
	//创建数据表
	//1、准备sql1语句
	char sql1[128]="create table if not exists worker(id int,name char,salary double)";
	char *errmsg=NULL;    //存放执行SQL语句中的错误信息
	if(sqlite3_exec(ppfd,sql1,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		printf("exec error:%s\n",errmsg);
		sqlite3_free(errmsg);
		errmsg=NULL;
		return -1;
	}
	puts("员工信息表创建成功");
	int number;           //操作码
	while(1)
	{
		system("clear");    //清空之前的终端信息
		printf("\t\t=======XXX公司员工管理系统=======\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", &number);
		getchar();                          
		switch(number)
		{
		case 1:    //添加员工信息
			{
				//定义修改数据表中的数据容器
				char id[128]; //id	
				char name[128];      //name
				char salary[128];   //salary
				printf("请输入数据:");
				scanf("%s %s %s",id,name,salary);
				//准备sql2语句
				char sql2[128];
				sprintf(sql2,"insert into worker values (%s,'%s',%s)",id,name,salary);
				char *errmsg=NULL;    //存放执行SQL语句中的错误信息
				if(sqlite3_exec(ppfd,sql2,NULL,NULL,&errmsg)!=SQLITE_OK)
				{
					printf("exec error:%s\n",errmsg);
					sqlite3_free(errmsg);
					errmsg=NULL;
					return -1;
				}
			}
			break;
		case 2:      //删除员工信息
			{
				char rbuf[128];   //字段名
				char sbuf[128];   //数据
				printf("请输入字段名和数据:");
				scanf("%s %s",rbuf,sbuf);
				//准备sql3语句
				char sql3[128];
				sprintf(sql3,"delete from worker where %s='%s'",rbuf,sbuf);
				 printf("%s\n",sql3);
				char *errmsg=NULL;    //存放执行SQL语句中的错误信息
				if(sqlite3_exec(ppfd,sql3,NULL,NULL,&errmsg)!=SQLITE_OK)
				{
					printf("exec error:%s\n",errmsg);
					sqlite3_free(errmsg);
					errmsg=NULL;
					return -1;
				}
			}
			break;
		case 3:    //修改员工信息
			{
				char rbuf[128];   //字段名
				char sbuf[128];   //数据
				char buf1[128];   //限制条件字段名
				char buf2[128];   //限制条件数据
				printf("请输入限制条件字段名和数据:");
				scanf(" %s %s",buf1,buf2);
				printf("修改的字段名和数据:");
				scanf(" %s %s",rbuf,sbuf);
				//准备sql4语句
				char sql4[128];
				sprintf(sql4,"update worker set %s='%s' where %s='%s'",rbuf,sbuf,buf1,buf2);
				char *errmsg=NULL;    //存放执行SQL语句中的错误信息
				if(sqlite3_exec(ppfd,sql4,NULL,NULL,&errmsg)!=SQLITE_OK)
				{
					printf("exec error:%s\n",errmsg);
					sqlite3_free(errmsg);
					errmsg=NULL;
					return -1;
				}
			}
			break;
		case 4:     //查询员工信息
			{ 
				char rbuf[128];   //字段名
				char sbuf[128];   //数据
				printf("查询的字段名和数据:");
				scanf(" %s %s",rbuf,sbuf);
				//准备sql5语句
				char sql5[128];
				sprintf(sql5,"select * from worker where %s='%s'",rbuf,sbuf);
				char *errmsg=NULL;    //存放执行SQL语句中的错误信息
				if(sqlite3_exec(ppfd,sql5,callback,NULL,&errmsg)!=SQLITE_OK)
				{
					printf("exec error:%s\n",errmsg);
					sqlite3_free(errmsg);
					errmsg=NULL;
					return -1;
				}
			}
			break;
		case 0:
			goto END;
		default:printf("您输入的功能有误,请重新输入!!!\n");
		}
		printf("请输入任意键,按回车清屏\n");
		while(getchar()!= '\n');
	}
END:
	//关闭数据库
	sqlite3_close(ppfd);
	return 0;
}

 

sqlite_exec函数作业演示视频

思维导图

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
day03-手动组建fabric网络.pdf》是一份指导手册,用于教授如何手动组建Fabric网络。Fabric网络是一个分布式账本技术,可用于构建区块链解决方案。这个手册详细介绍了在组建Fabric网络时的步骤和注意事项。 首先,手动组建一个Fabric网络需要一些技术基础。手册在开始部分介绍了一些必备的知识,例如区块链和分布式账本的基本概念。学习者需要理解这些基础概念,以便更好地理解后续的内容。 手册还提供了一些实践操作的步骤。首先,需要准备网络中的各个组件,例如Peer节点、Orderer节点和Channel。手册详细介绍了如何配置这些组件,并给出了一些示例。 接下来,手册重点介绍了如何连接这些组件,以构建一个完整的Fabric网络。手册详细介绍了如何配置节点之间的通信,如何创建和加入Channel,以及如何运行智能合约。这些步骤是手动组建Fabric网络的核心内容,学习者需要仔细理解和熟悉。 除了步骤之外,手册还提供了一些注意事项和最佳实践。例如,手册强调了网络的安全性和可扩展性,提供了一些建议和建议,帮助学习者更好地设计和管理Fabric网络。 总之,《day03-手动组建fabric网络.pdf》是一份非常实用的手册,适合想要了解如何手动组建Fabric网络的人士。通过学习这个手册,学习者可以获得丰富的知识和实践经验,从而能够独立地组建和管理自己的Fabric网络

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值