作业 增删改查 三个功能

ubuntu@ubuntu:~/wlbc/day7$ cat sqlite01.c 
#include <stdio.h>
#include <sqlite3.h>
#include <stdlib.h>
#include <string.h>

int increas(sqlite3 *db,char *errmsg)
{
	char sql[128]="";
	//printf("请输入要增加的库\n");
	//scanf("%s",unfold);
    char aa[128]="INSERT INTO stu VALUES";
	char id[128]="";
	char name[128]="";
	char scoer[128]="";
	printf("输入要增加的数据 ID,NAME,SCORE\n");
    scanf("%s %s %s",id,name,scoer);
	while(getchar()!=10);
	sprintf(sql,"%s(%s,'%s',%s)",aa,id,name,scoer);
	printf("%s\n",sql);
	

	//sprintf()
	
    if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		fprintf(stderr,"sqlite3_exec:%s\n",errmsg);
        return -1;
	}
}
int del_sqlite(sqlite3* db,char* errmsg)
{
	char id[128]="";
	char name[128]="";
	char scoer[128]="";
	printf("请输入你要删除你的数据信息\n");
	scanf("%s %s %s",id,name,scoer);
	while(getchar()!=10);
    char qq[128]="delete from stu where id";
    char sql[128]="";
    sprintf(sql,"%s=%s",qq,id);
	if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		fprintf(stderr,"sqlite3_exec:%s\n",errmsg);
		return-1;
	}



}
int revise_sql(sqlite3* db,char* errmsg)
{
	char id[128]="";
	char name[128]="";
	char scoer[128]="";

	printf("请输入你要修改的数据的信息\n");
	scanf("%s %s %s",id,name,scoer);
	while(getchar()!=10);


    char name1[128]="";
	char scoer1[128]="";
	printf("id 不能修改\n");
	printf("如果要修改name,请输入要修改的name如果不是请输入NO\n");
	scanf("%s",name1);
	while(getchar()!=10);

	printf("如果要修改scoer,请输入要修改的scoer如果不是请输入NO\n");
	scanf("%s",scoer1);
	while(getchar()!=10);
    char sql[128]="";
	char sql2[128]="";
	char qq[128]="update stu set";
    sprintf(sql,"%s name='%s'where id=%s",qq,name1,id);
    sprintf(sql2,"%s score=%s where id=%s",qq,scoer1,id);

	if(strcmp(name1,"NO")!=0)
	{
		if(strcmp(scoer1,"NO")!=0)
		{
			if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
			{
				fprintf(stderr,"sqlite3_exec:%s\n",errmsg);
				return -1;
			}

			if(sqlite3_exec(db,sql2,NULL,NULL,&errmsg)!=SQLITE_OK)
			{
                fprintf(stderr,"sqlite3_exec:%s\n",errmsg);
				return -1;
			}

		}
       else
		{

		 if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
			{
				fprintf(stderr,"sqlite3_exec:%s\n",errmsg);
				return -1;
			}



		}
	}
	if(strcmp(scoer1,"NO")!=0)
	{
			if(sqlite3_exec(db,sql2,NULL,NULL,&errmsg)!=SQLITE_OK)
			{
                fprintf(stderr,"sqlite3_exec:%s\n",errmsg);
				return -1;
			}




	}
}
int main(int argc, const char *argv[])
{
	
	sqlite3 *db =NULL;
	if(sqlite3_open("./my.db",&db)!= SQLITE_OK)
	{
		fprintf(stderr,"line:%d sqlite3_open:%s\n",__LINE__,sqlite3_errmsg(db));
        fprintf(stderr,"line:%d sqlite3_open:%d\n",__LINE__,sqlite3_errcode(db));
		return-1;
	}

	char sql[128]="create table if not exists stu (id int,name char,score float);";
	char*errmsg = NULL;


	if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
			fprintf(stderr,"line:%d sqlite3_exec:%s\n",__LINE__,errmsg);
			return -1;
	}
    printf("创建数据库成功\n");



	char c =0;
	while(1)
	{
		system("clear");//清屏
		printf("------------------------------\n");
		printf("---------1.添加---------------\n");
		printf("---------2.删除---------------\n");
		printf("---------3.改-----------------\n");
        printf("------------------------------\n");
		printf("----------5.退出--------------\n");





		printf("请输入\n");
		c=getchar();
		while(getchar()!=10);


		switch(c)
		{
		case '1':
		increas(db,errmsg);	
			break;
		case '2':
		del_sqlite(db,errmsg);
			break;
		case '3':
		revise_sql(db,errmsg);
			break;
		case'5':
			goto END;
		default:
			printf("输入错误,重新输入\n");
		}
		printf("输入任何字符清零\n");
		while(getchar()!=10);

	}














END:
	if(sqlite3_close(db)!=SQLITE_OK)
	{
		fprintf(stderr,"line:%d sqlite3_open: %s\n",__LINE__,sqlite3_errmsg(db));
		fprintf(stderr,"line:%d sqlite3_open: %d\n",__LINE__,sqlite3_errcode(db));
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值