一、思维导图
二、练习
数据库操作的增、删、改完成
#include <myhead.h>
int add_db(sqlite3 *bbd)
{
int ID;
printf("请输入员工ID:");
scanf("%d",&ID);
char name[20]="";
printf("请输入员工姓名:");
scanf("%s",name);
char post[20]="";
printf("请输入员工岗位:");
scanf("%s",post);
float money;
printf("请输入员工薪资:");
scanf("%f",&money);
char str[128]="";
sprintf(str,"insert into company values (%d,\"%s\",\"%s\",%.2f);",ID,name,post,money);
// printf("str=%s\n",str);
char *errmsg=NULL;
if(sqlite3_exec(bbd,str,NULL,NULL,&errmsg)!=SQLITE_OK)
{
printf("打开错误,错误信息:%s\n",sqlite3_errmsg(bbd));
sqlite3_free_table(&errmsg);
errmsg=NULL;
return -1;
}
printf("添加成功\n");
return 0;
}
int del_db(sqlite3 *bbd)
{
char name[20]="";
printf("请输入删除员工姓名:");
scanf("%s",name);
char str[128]="";
sprintf(str,"delete from company where name='%s';",name);
printf("str=%s\n",str);
char *errmsg=NULL;
if(sqlite3_exec(bbd,str,NULL,NULL,&errmsg)!=SQLITE_OK)
{
printf("打开错误,错误信息:%s\n",sqlite3_errmsg(bbd));
sqlite3_free_table(&errmsg);
}
printf("删除成功\n");
return 0;
}
int chg_db(sqlite3 *bbd)
{
int ID;
printf("请输入员工ID:");
scanf("%d",&ID);
while(1)
{
printf("\t\t*****杨氏集团员工信息系统*****\n");
printf("\t\t*****1、ID*****\n");
printf("\t\t*****2、姓名*****\n");
printf("\t\t*****3、岗位*****\n");
printf("\t\t*****4、薪资*****\n");
printf("\t\t*****0、返回*****\n");
int key;
printf("请输入需要修改的选项");
scanf("%d",&key);
switch(key)
{
case 1:
{
int chID;
printf("请输入新ID:");
scanf("%d",&chID);
char str[128]="";
sprintf(str,"update company set ID=%d where ID=%d;",chID,ID);
char *errmsg=NULL;
if(sqlite3_exec(bbd,str,NULL,NULL,&errmsg)!=SQLITE_OK)
{
printf("打开错误,错误信息:%s\n",sqlite3_errmsg(bbd));
sqlite3_free_table(&errmsg);
}
printf("修改成功\n");
}
break;
case 2:
{
char chname[20]="";;
printf("请输入新姓名:");
scanf("%s",chname);
char str[128]="";
sprintf(str,"update company set name=\"%s\" where ID=%d;",chname,ID);
char *errmsg=NULL;
if(sqlite3_exec(bbd,str,NULL,NULL,&errmsg)!=SQLITE_OK)
{
printf("打开错误,错误信息:%s\n",sqlite3_errmsg(bbd));
sqlite3_free_table(&errmsg);
}
printf("修改成功\n");
}
break;
case 3:
{
char chpost[20]="";
printf("请输入新岗位:");
scanf("%s",chpost);
char str[128]="";
sprintf(str,"update company set post=\"%s\" where ID=%d;",chpost,ID);
char *errmsg=NULL;
if(sqlite3_exec(bbd,str,NULL,NULL,&errmsg)!=SQLITE_OK)
{
printf("打开错误,错误信息:%s\n",sqlite3_errmsg(bbd));
sqlite3_free_table(&errmsg);
}
printf("修改成功\n");
}
break;
case 4:
{
float chmn;
printf("请输入新薪资:");
scanf("%f",&chmn);
char str[128]="";
sprintf(str,"update company set money=%.2f where ID=%d;",chmn,ID);
char *errmsg=NULL;
if(sqlite3_exec(bbd,str,NULL,NULL,&errmsg)!=SQLITE_OK)
{
printf("打开错误,错误信息:%s\n",sqlite3_errmsg(bbd));
sqlite3_free_table(&errmsg);
}
printf("修改成功\n");
}
break;
case 0:
{
goto A;
}
}
}
A:
return 0;
}
int main(int argc, const char *argv[])
{
char str[128]="create table if not exists company (ID int,name char,post char,money float);";
sqlite3 *kdb=NULL;
if(sqlite3_open("./worker.db",&kdb)!=SQLITE_OK)
{
printf("打开错误,错误信息:%s\n",sqlite3_errmsg(kdb));
return -1;
}
char *errmsg=NULL;
if(sqlite3_exec(kdb,str,NULL,NULL,&errmsg)!=SQLITE_OK)
{
printf("打开错误,错误信息:%s\n",sqlite3_errmsg(kdb));
sqlite3_free_table(&errmsg);
errmsg=NULL;
return -1;
}
printf("员工信息表创建成功\n");
int key=-1;
while(1)
{
system("clear");
printf("\t\t***********杨氏集团员工信息系统***********\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",&key);
switch(key)
{
case 1:
{
add_db(kdb);
}
break;
case 2:
{
del_db(kdb);
}
break;
case 3:
{
chg_db(kdb);
}
break;
case 4:
{
// fnd_db();
}
break;
case 0:
{
goto END;
}
break;
defalut:
{
printf("请重新输入正确操作\n");
}
}
}
END:
return 0;
}