#include<stdio.h>#include<sqlite3.h>#include<stdlib.h>#include<string.h>voiddo_insert(sqlite3*);voiddo_delete(sqlite3*);voiddo_update(sqlite3*);intmain(int argc,constchar*argv[]){
sqlite3* db =NULL;if(sqlite3_open("stu.db",&db)!= SQLITE_OK){fprintf(stderr,"line:%d sqlite3_open:%s\n",__LINE__,sqlite3_errmsg(db));return-1;}printf("数据库创建成功\n");//创建一张表格char sql[128]="create table if not exists stu (id int primary key, 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;}char c =0;while(1){system("clear");printf("---------------------------\n");printf("----------1. 增------------\n");printf("----------2. 删------------\n");printf("----------3. 改------------\n");printf("----------4. 查------------\n");printf("----------5. 退出----------\n");printf("---------------------------\n");printf("请输入>>>");
c =getchar();while(getchar()!=10);switch(c){case'1'://增 --->全字段输入do_insert(db);break;case'2'://删 --->通过id删除do_delete(db);break;case'3'://改 --->通过id更改do_update(db);break;case'4':break;case'5':goto END;default:printf("输入错误!请重新输入\n");break;}printf("请输入任意字符清屏\n");while(getchar()!=10);}
END://关闭数据库if(sqlite3_close(db)!= SQLITE_OK){fprintf(stderr,"line:%d sqlite3_close:%s\n",__LINE__,sqlite3_errmsg(db));return-1;}printf("database close success\n");return0;}voiddo_insert(sqlite3* db){char sql[128]="";int id =0;char name[20]="";float score =0;char*errmsg =NULL;printf("请输入id name score>>>");scanf("%d %s %f",&id, name,&score);while(getchar()!=10);sprintf(sql,"insert into stu values (%d,\"%s\", %f)", id, name, score);if(sqlite3_exec(db, sql,NULL,NULL,&errmsg)!=SQLITE_OK){fprintf(stderr,"line:%d sqlite3_exec:%s\n",__LINE__, errmsg);return;}printf("插入成功\n");}voiddo_delete(sqlite3* db){char sql[128]="";int id =0;char*errmsg =NULL;printf("请输入要删除的记录的id>>>");scanf("%d",&id);while(getchar()!=10);sprintf(sql,"DELETE FROM stu WHERE id=%d", id);if(sqlite3_exec(db, sql,NULL,NULL,&errmsg)!=SQLITE_OK){fprintf(stderr,"line:%d sqlite3_exec:%s\n",__LINE__, errmsg);return;}printf("删除成功\n");}voiddo_update(sqlite3* db){char sql[128]="", seg[10], value[10];int id =0;char*errmsg =NULL;printf("请输入要更改的记录id 字段 内容>>>");scanf("%d %s %s",&id, seg, value);while(getchar()!=10);if(!strcmp(seg,"name"))sprintf(sql,"UPDATE stu SET %s=\"%s\" WHERE id=%d", seg, value, id);elsesprintf(sql,"UPDATE stu SET %s=%s WHERE id=%d", seg, value, id);if(sqlite3_exec(db, sql,NULL,NULL,&errmsg)!=SQLITE_OK){fprintf(stderr,"line:%d sqlite3_exec:%s\n",__LINE__, errmsg);return;}printf("更新成功\n");}