• 使用数据库实现增删改查


     

    1. #include
    2. //定义添加数据函数
    3. int do_add(sqlite3 *ppDb)
    4. {
    5. //1.准备sql语句,输入要添加的信息
    6. int add_numb; //工号
    7. char add_name[20]; //姓名
    8. char add_sex[10]; //性别
    9. double add_score; //工资
    10. printf("请输入要添加的工号:");
    11. scanf("%d",&add_numb);
    12. printf("请输入要添加的姓名:");
    13. scanf("%s",add_name);
    14. printf("请输入要添加的性别:");
    15. scanf("%s", add_sex);
    16. printf("请输入要添加的工资:");
    17. scanf("%lf", &add_score);
    18. getchar();
    19. //准备sql语句
    20. char sql[128]="";
    21. sprintf(sql,"insert into Worker(numb, name, sex, score) value(%d,\"%s\",\"%s\",%2lf);",add_numb,add_name,add_sex,add_score);
    22. //2.定义错误信息存放指针
    23. char *errmsg = NULL;
    24. //3.执行语句
    25. if(sqlite3_exec(ppDb, sql, NULL,NULL,NULL, &errmsg) != SQLITE_OK)
    26. {
    27. printf("exec error:%s\n",errmsg);
    28. sqlite3_free(errmsg);
    29. errmsg = NULL;
    30. return -1;
    31. }
    32. printf("do_add success\n");
    33. return 0;
    34. }
    35. //删除员工信息
    36. int do_delete(sqlite3 *ppDb)
    37. {
    38. //1.准备sql语句 输入要删除员工信息
    39. int delete_numb;
    40. printf("请输入要删除记录的工号:");
    41. scanf("%d",&delete_numb);
    42. getchar();
    43. char sql[128]="";
    44. sprintff(sql,"delete from Stu where numb=%d",delete_numb);
    45. //2.定义错误信息存放指针
    46. char *errmsg = NULL;
    47. //3.执行语句
    48. if(sqlite3_exec(ppDb, sql, NULL,NULL,NULL, &errmsg) != SQLITE_OK)
    49. {
    50. printf("exec error:%s\n",errmsg);
    51. sqlite3_free(errmsg);
    52. errmsg = NULL;
    53. return -1;
    54. }
    55. printf("do_delete success\n");
    56. return 0;
    57. }
    58. int main(int argc, const char *argv[])
    59. {
    60. //定义数据库句柄指针
    61. sqlite3 * ppDb = NULL;
    62. //打开数据库,如果数据库不存在,则创建数据库
    63. //将数据库句柄由参数2返回
    64. if(sqlite3_open("./my.db", &ppDb) != SQLITE_OK)
    65. {
    66. printf("sqlite3_open error,errcode=%d, errmsg = %s\n",\
    67. sqlite3_errcode(ppDb), sqlite3_errmsg(ppDb));
    68. return -1;
    69. }
    70. printf("sqlite3_open success\n");
    71. //创建数据表
    72. //1、准备sql语句
    73. char sql[128] = "create table if not exists Worker(numb int, name char, salary double)";
    74. //char *sql = "create table if not exists Worker(numb int, name char, salary double)";
    75. char *errmsg = NULL; //存放执行sql语句口的错误信息
    76. if(sqlite3_exec(ppDb, sql, NULL, NULL, &errmsg) != SQLITE_OK)
    77. {
    78. printf("exec error : %s\n", errmsg);
    79. sqlite3_free(errmsg); //防止内存泄露
    80. errmsg = NULL;
    81. return -1;
    82. }
    83. printf("员工信息表创建成功\n");
    84. int menu = -1; //菜单选项
    85. for(;;)
    86. {
    87. system("clear"); //清空之前的终端信息
    88. printf("\t\t=======XXX公司员工管理系统=======\n");
    89. printf("\t\t======1、添加员工信息=========\n");
    90. printf("\t\t======2、删除员工信息=========\n");
    91. printf("\t\t======3、修改员工信息=========\n");
    92. printf("\t\t======4、查询员工信息=========\n");
    93. printf("\t\t======0、退出=========\n");
    94. printf("请输入操作码:"); //提示并输入信息
    95. scanf("%d", &menu);
    96. getchar(); //吸收回车
    97. switch(menu)
    98. {
    99. case 1:
    100. {
    101. do_add(ppDb);
    102. }
    103. break;
    104. case 2:
    105. {
    106. do_delete(ppDb);
    107. }
    108. break;
    109. case 3:
    110. {
    111. //do_update(ppDb);
    112. }
    113. break;
    114. case 4:
    115. {
    116. //do_search(ppDb);
    117. }
    118. break;
    119. case 0:
    120. goto END;
    121. default:printf("您输入的功能有误,请重新输入!!!\n");
    122. }
    123. printf("请输入任意键,按回车清屏\n");
    124. while(getchar() != '\n');
    125. }
    126. END:
    127. //关闭数据库
    128. sqlite3_close(ppDb);
    129. return 0;
    130. }

  • 相关阅读:
    二十三、SpringBoot + Jwt + Vue 权限管理系统 (4)
    AI项目十五:PP-Humanseg训练及onnxruntime部署
    网络安全(黑客)自学
    mybatis多个拦截器执行顺序以及获取sql出现java.lang.NoSuchFieldException: boundSql异常问题解决方案
    uiautomator2遍历子元素.all()
    生产计划体系完整解决方案(1) - 复杂大规模问题的分阶段规划
    政安晨:【深度学习神经网络基础】(八)—— 神经网络评估回归与模拟退火训练
    【Spring】核心部分之IOC:通过列举代码例子,从底层刨析,深入源码,轻轻松松理解Spring的核心IOC,IOC有这一篇足以
    jclasslib :java class字节码jvm指令分析
    【重温设计模式】中介者模式及其Java示例
  • 原文地址:https://blog.csdn.net/wanyu_l/article/details/136518254