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

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

#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.mrgr.cn/news/23898.html

相关文章:

  • NLP基础及其代码-tokenizer
  • 数字的补数
  • 多元素枚举问题
  • 数据结构 Java DS——分享部分链表题目 (2)
  • 智能工厂程序设计 之-2 (Substrate) :三个世界--“存在的意义”-“‘我’的价值的实现” 之2
  • U9的可用量管制功能失效了
  • 【03】深度学习——神经网络原理 | 多层感知机 | 前向传播和反向传播 | 多层感知机代码实现 | 回归问题、分类问题 | 多分类问题代码实现
  • day3 QT
  • 【Linux进程详解】进程地址空间
  • 【算法专题--回文】最长回文子串 -- 高频面试题(图文详解,小白一看就懂!!)
  • C:题目介绍
  • Qt-QWidget的focusPolicy属性(20)
  • “我”变小了但更强了!英伟达发布最新大语言模型压缩技术,无损性能且提升数倍!
  • PHP零基础入门教程笔记最全(2024年9月最新版)
  • 【原理图PCB专题】案例:Cadence能设计一个没有管脚的器件吗?
  • 【Qt】实现一个小闹钟
  • Ai+若依(集成easyexcel实现excel表格增强)
  • linux上使用rpm的方式安装mysql
  • C语言从头学58——学习头文件math.h(一)
  • TCP通信实现