数据库C语言删除修改和输出

ops/2024/10/18 8:26:00/

#include<myhead.h>

#include<sqlite3.h>


int out_callback(void *arg,int column_num, char **msgrow,char **msgcolumn)//输出查找的工人信息
{


    int i = 0, j = 0;
    while(i<column_num)
    {
        printf("%s\t" ,*(msgcolumn+i));
    
        printf("%s\t",*(msgrow+i));
    

        i++;    
    
    }
    printf("\n");

    return 0;
}
int do_showall(sqlite3 *ppDb)
{
    char *errmsg = NULL;

    char output_exec[100] = "select *from Work;";
    
    if(sqlite3_exec(ppDb,output_exec,out_callback,NULL,&errmsg)!=0)//实现插入一个工人信息
    {
        perror("sqlite3_errmsg");
        printf("错误码:%d错误信息:%s,出错行是:%d\n",
                sqlite3_errcode(ppDb),errmsg,__LINE__);
        

        return -1;
    }


}
int do_delete(sqlite3*ppDb)
{
    char key[20];
    char *errmsg = NULL;

    printf("输入你想要删除的名字:");
    scanf("%s",key);
    char delete_exce[100];
    snprintf(delete_exce,sizeof(delete_exce),"delete from Work where name==\"%s\";",key);

    if(sqlite3_exec(ppDb,delete_exce,NULL,NULL,&errmsg)!=0)
    {
        perror("sqlite3_exec");
        printf("错误码:%d错误信息:%s,出错行是:%d\n",
                sqlite3_errcode(ppDb),errmsg,__LINE__);
        return -1;
    }
    printf("删除成功\n");
}

int do_change(sqlite3*ppDb)
{
    char key[20];
    char *errmsg = NULL;
    int num;
    printf("输入工号:");
    scanf("%d",&num);
    printf("输入你根据工号想要修改的名字:");
    scanf("%s",key);
    char change_exce[100];
    snprintf(change_exce,sizeof(change_exce),"update Work set name==\"%s\" where gh==%d;",key,num);

    if(sqlite3_exec(ppDb,change_exce,NULL,NULL,&errmsg)!=0)
    {
        perror("sqlite3_exec");
        printf("错误码:%d错误信息:%s,出错行是:%d\n",
                sqlite3_errcode(ppDb),errmsg,__LINE__);
        return -1;
    }
    printf("删除成功\n");


}

void menu(sqlite3 * ppDb)
{
    int ch;
    printf("\t\t\t*******工人阶级为主导的社会主义国家**********\n");
    printf("\t\t\t1、插入一个工人信息\n");
    
    printf("\t\t\t2、删除一个工人信息\n");
    printf("\t\t\t3、修改一个工人信息\n");
    printf("\t\t\t4、查找一个工人信息\n");
    
    printf("\t\t\t5、输出所有工人信息\n");
    
    printf("\t\t\t0、退出\n");
    printf("请输入你的选择:");
    scanf("%d",&ch);
    getchar();//吸收回车
    switch(ch)
    {
    
         case 1:
        
            do_insert(ppDb);

        break;
    
         case 2:
        
            do_delete(ppDb);

        break;
    
        case 3:
            do_change(ppDb);
        break;
    
         case 4:
            do_reserch(ppDb);
        break;
    
        case 5:
            do_showall(ppDb);
        break;

        case 0:
        exit(0);
        break;
    
         default:
            printf("error");
        
        break;
        
    
    
    
    
    }
    
    
    

}


http://www.ppmy.cn/ops/109098.html

相关文章

[Linux#48][网络] 令牌环网 | IPv4 | socket 套接字 | TCP | UDP | 网络字节序列

目录 1.网络 1.0 令牌环网&#xff08;了解&#xff09; 1.1 IP 地址 1.3 网络通信的基本脉络 IPv4地址解释 2.Socket 编程预备 2.1 端口号 2.2 传输层协议 2.3 网络字节序列 库函数定义 函数说明 1.网络 1.0 令牌环网&#xff08;了解&#xff09; 相同令牌时&am…

深圳建站公司-如何做网站

深圳建站公司&#xff1a;如何制作一个成功的网站 在信息化快速发展的今天&#xff0c;企业和个人越来越重视网络形象&#xff0c;网站成为了展示品牌、推广产品和服务的重要平台。深圳作为科技创新和经济发展的前沿城市&#xff0c;涌现出许多专业的建站公司&#xff0c;能够为…

【docker】命令之镜像操作

一、前言 之前讲解了docker的安装&#xff0c;这里呢接着上面的内容来介绍docker中的相关命令的操作。这里我们更具一个案例就是启动一个nginx&#xff08;是一个在我们应用市场存在的一个软件包&#xff09;,并尝试对其进行修改&#xff0c;然后发布出去&#xff0c;让别人都能…

第67期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

uniapp关于页面跳转

navigateto进行跳转会出现&#xff0c;确实跳转到了制定页面&#xff0c;在制定页面点击返回按钮&#xff0c;又回到了刚才的页面&#xff0c;显然是不合理的 uni.navigateTo&#xff1a;在页面栈中新增一个页面实例&#xff0c;适合于临时跳转。uni.redirectTo&#xff1a;替…

【Linux】线程安全问题

文章目录 线程安全概述为什么线程安全很重要&#xff1f;线程安全的实现方式避免线程安全问题 线程安全概述 在多线程编程中&#xff0c;线程安全&#xff08;Thread Safety&#xff09; 是指程序在多个线程同时执行时&#xff0c;能够正确地共享和访问资源而不出现数据不一致…

数学建模笔记——层次分析法

数学建模笔记——层次分析法 数学建模笔记——层次分析法1. 层次分析法的基本原理和步骤2. 层次分析法的建模过程2.1 问题的提出2.2 模型原理2.3 为该问题建立层次结构模型2.4 构造判断矩阵1. 判断矩阵的含义2. 为该问题构造判断矩阵 2.5 一致性检验1. 一致性检验方法2. 对上述…

【Prompt Engineering:自我一致性、生成知识提示、链式提示】

自我一致性 也许在提示工程中更高级的技术之一是自我一致性。由 Wang等人&#xff08;2022&#xff09;(opens in a new tab) 提出&#xff0c;自我一致性旨在“替换链式思维提示中使用的天真贪婪解码方法”。其想法是通过少样本 CoT 采样多个不同的推理路径&#xff0c;并使用…