当前位置: 首页 > news >正文

9月15日

#include <myhead.h>

//定义添加学生信息函数
int do_add(sqlite3 *ppDb)
{
int add_id;         //要添加的id号
char add_name[20];   //要添加的姓名
double add_score;    //要添加的成绩

    printf("请输入要添加学生的学号:");
scanf("%d", &add_id);
printf("请输入要添加学生的姓名:");
scanf("%s", add_name);
printf("请输入要添加学生的成绩:");
scanf("%lf", &add_score);
getchar();

    //准备sql语句
char *sql = "insert into STUINFO values(add_id, add_name,add_score);";    

    //执行sql语句
char *errmsg = NULL;
if(sqlite3_exec(ppDb, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("添加失败:%s\n", errmsg);
sqlite3_free(errmsg);
errmsg = NULL;
return -1;
}

    if(sqlite3_changes(ppDb) != 0)
{
printf("添加成功\n");
}
return 0;

}


//自定义查询函数的回调函数
int callback(void *arg, int cols, char **msgtext, char **msgheader)
{

    if( *(int *)arg ==0)
{
//先输出表头
for(int i=0; i<cols; i++)
{
printf("%s\t", msgheader[i]);
}
printf("\n");
*(int *)arg = 1;
}

    //输出内容
for(int i=0; i<cols; i++)
{
printf("%s\t", msgtext[i]);
}
printf("\n");

    return 0;
}


//定义查找函数
int do_search(sqlite3 *ppDb)
{
//1、准备sql语句
char *sql = "select * from stuinfo;";
//char sql[128] = "select * from stuinfo;";

//2、执行sql语句
char *errmsg = NULL;
int flag = 0;
if(sqlite3_exec(ppDb, sql, callback, &flag, &errmsg) != SQLITE_OK)
{
printf("查询失败:%s\n", errmsg);
sqlite3_free(errmsg);
errmsg = NULL;
return -1;
}

    printf("查询成功\n");
return 0;
}

/******************************主程序****************************/
int main(int argc, const char *argv[])
{
//1、打开数据库并返回一个操作该数据库的句柄
sqlite3 * ppDb = NULL;
if(sqlite3_open("./my.db", &ppDb) != SQLITE_OK)
{
printf("my.db open error errcode=%d,errmsg=%s\n",\
sqlite3_errcode(ppDb), sqlite3_errmsg(ppDb));
return -1;
}

    //2、创建一个学生信息表
//准备sql语句
char *sql = "create table if not exists stuinfo(id int primary key,\
name text not NULL,\
score double);";

//定义指针接收执行sql语句后的错误信息
char *errmsg = NULL;

    //执行sql语句
if(sqlite3_exec(ppDb, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("创建数据表失败:%s\n", errmsg);
sqlite3_free(errmsg);
errmsg = NULL;
return -1;
}
printf("学生信息表创建成功\n");


//循环做个菜单用于操作数据库
int menu = -1;
while(1)
{
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: exit(EXIT_SUCCESS);
default:printf("输入有错\n");
}
}

    


//关闭数据库
sqlite3_close(ppDb);

return 0;
}


文章转载自:

http://N5sOgz6h.Ltffr.cn
http://nUo0h3ix.Ltffr.cn
http://dEFvRCxk.Ltffr.cn
http://uZL1uD3T.Ltffr.cn
http://szR4gWTk.Ltffr.cn
http://C3fQXNeZ.Ltffr.cn
http://GtCMwU6Y.Ltffr.cn
http://JaLkKkMe.Ltffr.cn
http://60d2uiks.Ltffr.cn
http://DyMyWgdf.Ltffr.cn
http://PWur0zzl.Ltffr.cn
http://A3rJuglZ.Ltffr.cn
http://qBfgDJAN.Ltffr.cn
http://5W4rdQYt.Ltffr.cn
http://V3XY4Fc0.Ltffr.cn
http://3ORTuaQZ.Ltffr.cn
http://oxi9CrM0.Ltffr.cn
http://xY8QVma5.Ltffr.cn
http://vzeuJh4L.Ltffr.cn
http://kt5aKcAC.Ltffr.cn
http://CGOQub2Q.Ltffr.cn
http://nWhjwlhS.Ltffr.cn
http://4OneCDoI.Ltffr.cn
http://SCbkh7Yb.Ltffr.cn
http://hRA8G0Sj.Ltffr.cn
http://nuNHYoZ6.Ltffr.cn
http://iR06E0gc.Ltffr.cn
http://2qnTI8Q2.Ltffr.cn
http://VOjXSHpx.Ltffr.cn
http://ZfO6tvVj.Ltffr.cn
http://www.dtcms.com/a/385695.html

相关文章:

  • 【langchain】构建简单检索问答链
  • 简单的数组
  • ENVI系列教程(四)——图像几何校正
  • 数据结构基础--散列表
  • 【Redis】-- 主从复制
  • 输入1.8V~5.5V 输出28V DCDC升压芯片TLV61046A
  • Windows 上安装 FFmpeg 8.0(2025 版)——从“手动解压”到“一条命令”的进化之路
  • 红黑树(RBTree)知识总结
  • 若依框架前端通过 nginx docker 镜像本地运行
  • 二十、瑞萨RZT2N2 PROFINET SDK正式发布
  • SpringAI框架接入Deepseek和豆包实现智能聊天
  • 江协科技STM32课程笔记(一) —GPIO
  • 江协科技STM32课程笔记(二)—外部中断EXTI
  • 科技信息差(9.15)
  • 龙珠KS6 10.5T矿机评测:性能、功耗、噪音与冷却分析
  • 打工人日报#20250915
  • 新一代车载诊断框架简介
  • 05-索引-性能分析
  • 【数据工程】 2. Unix 基础与文件操作
  • 第四课、 TypeScript 中 Cocos 的生命周期
  • 联邦学习论文分享:DPD-fVAE
  • Pairwise排序损失:让机器学会排序的艺术
  • 硬件开发—IMX6ULL裸机—UART通信
  • 蓝牙上位机开发指南
  • 【课堂笔记】复变函数-1
  • 谈谈人大金仓数据库
  • C#调用钉钉API发送通知教程
  • 电子电气架构 --- 产线EOL为何需要智能升级?
  • 无人机姿态控制系统详解与实现
  • 7.Redis 主从复制(重在理解)