1.思维导图
2.数据库操作的增、删、改完成。
#include<myhead.h>
//定义新增员工信息函数
int do_add(sqlite3 *ppDb)
{
int numb;
char name;
double salary;
printf("请输入要插入的信息:");
scanf("%d%s%d\n",&numb,name,&salary);
char sql[128]="";
sprintf(sql,"INSERT INTO Worker VALUES(%d,%s,%d)",numb,name,salary);
//char sql[128]="insert into Worker values(001,'张三',10000)";
//char sql2[128]="insert into Worker values(002,'李四',9000)";
//char sql3[128]="insert into Worker values(003,'王五',12000)";
//char sql4[128]="insert into Worker values(004,'赵六',20000)";
//char sql[128]="alter table Worker add column numb int";
char *errmsg=NULL; //存放执行sql语句的错误信息
if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
{
printf("exec error:%s\n",errmsg);
sqlite3_free(errmsg); //防止内存泄露
errmsg=NULL;
return -1;
}
printf("add success\n");
}
//定义删除员工信息函数
int do_delete(sqlite3 *ppDb)
{
char sql[128]="DELETE FROM Worker WHERE numb=001";
char *errmsg=NULL; //存放执行sql语句的错误信息
if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
{
printf("exec error:%s\n",errmsg);
sqlite3_free(errmsg); //防止内存泄露
errmsg=NULL;
return -1;
}
printf("delete success\n");
}
//定义修改员工信息函数
int do_update(sqlite3 *ppDb)
{
char sql[128]="UPDATE Worker SET salary>10000 WHERE numb=002";
char *errmsg=NULL; //存放执行sql语句的错误信息
if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
{
printf("exec error:%s\n",errmsg);
sqlite3_free(errmsg); //防止内存泄露
errmsg=NULL;
return -1;
}
printf("update success\n");
}
//定义查找员工信息函数
int do_search(sqlite3 *ppDb)
{
char sql[128]="SELECT *FROM Worker WHERE numb=003";
char *errmsg=NULL; //存放执行sql语句的错误信息
if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
{
printf("exec error:%s\n",errmsg);
sqlite3_free(errmsg); //防止内存泄露
errmsg=NULL;
return -1;
}
printf("search success\n");
}
int main(int argc, const char *argv[])
{
//定义数据库句柄指针
sqlite3 *ppDb=NULL;
//打开数据库,如果数据库不存在,则创建数据库
//将数据库句柄由参数2返回
if(sqlite3_open("./my.db",&ppDb)!=SQLITE_OK)
{
printf("sqlite3_open error,errcode=%d,errmsg=%s\n",sqlite3_errcode(ppDb),sqlite3_errmsg(ppDb));
return -1;
}
printf("sqlite3_open success\n");
//创建数据表
//1.准备sql语句
char sql[128]="create table if not exists Worker(numb int,name char,salary double)";
char *errmsg=NULL; //存放执行sql语句的错误信息
if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
{
printf("exec error:%s\n",errmsg);
sqlite3_free(errmsg); //防止内存泄露
errmsg=NULL;
return -1;
}
printf("员工信息表创建成功\n");
int menu=-1; //菜单选项
for(;;)
{
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",&menu);
getchar(); //吸收回车
switch(menu)
{
case 1:
{
do_add(ppDb);
}
break;
case 2:
{
do_delete(ppDb);
}
break;
case 3:
{
do_update(ppDb);
}
break;
case 4:
{
do_search(ppDb);
}
break;
case 0:
goto END;
default:printf("您输入的功能有误,请重新输入!!!\n");
}
printf("请输入任意键,按回车清屏\n");
while(getchar()!='\n');
}
END:
//关闭数据库
sqlite3_close(ppDb);
return 0;
}