#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sqlite3.h>
int main(int argc, const char *argv[])
{
sqlite3 *db =NULL;
if(sqlite3_open("./My.db",&db)!=SQLITE_OK)
{
fprintf(stderr,"sqlite3_open :%s errcode :%d\n",sqlite3_errmsg(db),sqlite3_errcode(db));
return -1;
}
printf("sqlite3_open success\n");
//创建一个表
//c代码中编写的sql语句的格式与数据库中编写的一致
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("create table stu success\n");
int id =0;
char name[10]="";
float score = 0;
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':
printf("请输入要增加的数据>>>id: name: score:\n");
scanf("%d%s%f",&id,name,&score);
sprintf(sql,"insert into stu values (%d,'%s',%f)",id,name,score);//执行sql语句
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
{
fprintf(stderr,"line:%d sqlite3_exec: %s\n",__LINE__,errmsg);
return -1;
}
printf("insert success\n");
break;
//删除指定记录
case '2':
printf("请输入要删除行的id号>>>");
scanf("%d",&id);
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 -1;
}
printf("delete success\n");
break;
//修改数据记录
case '3':
while(1)
{
char fd[10]="";
printf("请输入要修改的数据的id号>>>");
scanf("%d",&id);
printf("请输入要修改的类型>>name/score\n");
scanf("%s",fd);
if(strcmp("score",fd)==0)
{
printf("输入score要修改为的值\nscore= ");
scanf("%f",&score);
sprintf(sql,"update stu set score=%f where id=%d",score,id);
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
{
fprintf(stderr,"line:%d sqlite3_exec: %s\n",__LINE__,errmsg);
return -1;
}
printf("update success\n");
break;
}
else if(strcmp("name",fd)==0)
{
printf("输入name要修改为的值\nname= ");
scanf("%s",name);
sprintf(sql,"update stu set name='%s' where id=%d",name,id);
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
{
fprintf(stderr,"line:%d sqlite3_exec: %s\n",__LINE__,errmsg);
return -1;
}
printf("update success\n");
break;
}
else
{
printf("修改类型不存在,请重新输入\n");
break;
}
}
break;
//查看数据表数据记录
case '4':
sprintf(sql,"select * from stu");
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
{
fprintf(stderr,"line:%d sqlite3_exec : %s\n",__LINE__,errmsg);
return -1;
}
break;
case '5':
goto END;
break;
default:
printf("输入错误,请重新输入\n");
}
}
END:
//关闭数据库
if(sqlite3_close(db)!=SQLITE_OK)
{
fprintf(stderr,"sqlite3_open :%s errcode :%d\n",sqlite3_errmsg(db),sqlite3_errcode(db));
return -1;
}
return 0;
}
12-30
9659
04-15
1751