自学内容网 自学内容网

2024.3.6

作业1:使用C语言完成数据库的增删改

#include <myhead.h>
 
 
//定义添加员工信息函数
int Add_worker(sqlite3 *ppDb)
{
//准备sql语句

printf("请输入要添加的员工信息:\n");
//从终端获取员工信息
char rbuf[128]="";
fgets(rbuf,sizeof(rbuf),stdin);
rbuf[strlen(rbuf)-1]=0;
 
char sql[128]="insert into worker values";
strcat(sql,rbuf);
//存放执行sql语句后的错误信息
char *errmsg=NULL;
if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg) != SQLITE_OK)
{
printf("exec error:%s\n",errmsg);
sqlite3_free(errmsg);      //防止内存泄露
errmsg=NULL;
return -1;
}

return 0;
}
 
 
//定义删除员工信息函数
int del_worker(sqlite3 *ppDb)
{
//准备sql语句
int numb;
printf("请输入要删除的员工工号:");
scanf("%d",&numb);

char sql[128]="";
sprintf(sql,"delete from worker where numb=%d;",numb);
//存放执行sql语句后的错误信息
char *errmsg=NULL;
if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg) != SQLITE_OK)
{
printf("exec error:%s\n",errmsg);
sqlite3_free(errmsg);      //防止内存泄露
errmsg=NULL;
return -1;
}

return 0;
}
 
 
//定义修改员工信息函数
int modify_worker(sqlite3 *ppDb)
{
//准备sql语句
int numb;
double salary;
printf("请输入要修改的员工工号:");
scanf("%d",&numb);
getchar();
 
printf("请输入要修改的工资:");
scanf("%lf",&salary);
getchar();

char sql[128]="";
sprintf(sql,"update worker set salary=%lf where numb=%d;",salary,numb);
//存放执行sql语句后的错误信息
char *errmsg=NULL;
if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg) != SQLITE_OK)
{
printf("exec error:%s\n",errmsg);
sqlite3_free(errmsg);      //防止内存泄露
errmsg=NULL;
return -1;
}

return 0;
}
 
/**********************************主程序***************************************/
int main(int argc, const char *argv[])
{
//定义数据库句柄
sqlite3 *ppDb=NULL;
//打开数据库,不存在则创建
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");
 
//创建数据表
//准备sql语句
char sql[128]="create table if not exists worker(numb int,name char,salary double)";
 
//存放执行sql语句后的错误信息
char *errmsg=NULL;
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;     //菜单选项
 
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*********0.退出管理系统*********\n");
printf("请输入选项>>>");
scanf("%d",&menu);
getchar();
 
switch(menu)
{
case 1:
{
//添加员工信息
Add_worker(ppDb);
}
break;
case 2:
{
//删除员工信息
del_worker(ppDb);
}
break;
case 3:
{
//修改员工信息
modify_worker(ppDb);
}
break;
case 0:
//退出管理系统
goto END;
break;
default:printf("输入的选项有误,请重新输入\n");break;
}
printf("按任意键清屏\n");
while(getchar()!='\n');
}
END:
 
//关闭数据库
sqlite3_close(ppDb);
 
return 0;
}

2. 


原文地址:https://blog.csdn.net/RT_gxy/article/details/136519691

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!