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;
}