day06-网路编程

#include <myhead.h>

int do_add(sqlite3 *ppDb)
{
    int numb;
    char name[20];
    int age;
    int salary;
    printf("请输入要插入的信息:");
    scanf("%d %s %d %d", &numb, name, &age, &salary);
    char sql[128] = "";
    sprintf(sql, "INSERT INTO worker VALUES(%d,'%s',%d,%d)", numb, name, age, salary);

    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;
    }
}
int do_delete(sqlite3 *ppDb)
{
    char sql[128] = "DELETE FROM worker where name = 'xzh'";
    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;
    }
}
int do_update(sqlite3 *ppDb)
{
    char sql[128] = "UPDATE worker SET salary = 16000 where name = 'ghn'";
    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;
    }
}

int callback(void *arg,int argc, char **argv, char **azColName)
{
    int i; 
    for(i=0; i<argc; i++){ 
       printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL"); 
    } 
    printf("\n"); 
    return 0; 

}
int do_search(sqlite3 *ppDb)
{
    struct INFO msg;
    char sql[128] = "SELECT * FROM worker WHERE numb = 1001";
    char *errmsg = NULL;

    if (sqlite3_exec(ppDb, sql,callback,0,&errmsg) != SQLITE_OK)
    {
        printf("exec error : %s\n", errmsg);
        sqlite3_free(errmsg);
        errmsg = NULL;
        return -1;
    }
}
int main(int argc, char const *argv[])
{
    // 1.定义数据库句柄指针
    sqlite3 *ppDb = NULL;

    // 2.打开数据库,如果数据库不存在,则创建数据库并打开数据库
    //  将句柄由参数2返回,
    if (sqlite3_open("./my.db", &ppDb) != SQLITE_OK)
    {
        printf("sqlite3_open error,errcode=%d\n", sqlite3_errcode(ppDb));
        return -1;
    }
    printf("sqlite3_open success\n");
    /*
    // 创建数据库
        // 1.准备sql语句
        char sql[128] = "CREATE TABLE worker(numb int PRIMARY KEY, name char, age int, salary double)";
        //  char *sql = "CREATE TABLE worker(numb int PRIMARY KEY, name char, age int, salary double)";
        char *errmsg = NULL; // 存放执行sql语句的错误信息
        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; // 菜单选项
    for (;;)
    {
        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:
            goto END;
        default:
            printf("您输入的功能有误,请重新输入!!!\n");
        }

        getchar();
        printf("请输入任意键,按回车清屏\n");
        while (getchar() != '\n');
    }

END:
    // 关闭数据库
    sqlite3_close(ppDb);
    return 0;
}

相关推荐

  1. 网络 / day06 作业

    2024-03-10 10:12:02       37 阅读
  2. 网络编程 day3

    2024-03-10 10:12:02       35 阅读

最近更新

  1. Mongodb地理信息数据查询

    2024-03-10 10:12:02       0 阅读
  2. uniapp实现图片懒加载 封装组件

    2024-03-10 10:12:02       0 阅读
  3. 有关区块链的一些数学知识储备

    2024-03-10 10:12:02       0 阅读
  4. MICCAI 2023 List of Papers

    2024-03-10 10:12:02       0 阅读
  5. uniapp如何发送websocket请求

    2024-03-10 10:12:02       1 阅读
  6. react

    react

    2024-03-10 10:12:02      1 阅读
  7. 光通信领域常见的会议和期刊总结

    2024-03-10 10:12:02       1 阅读
  8. uniapp上传文件并获取上传进度

    2024-03-10 10:12:02       1 阅读

热门阅读

  1. centos7.9升级ssh和openssl

    2024-03-10 10:12:02       23 阅读
  2. Android工具adb下载安装环境配置详细教程

    2024-03-10 10:12:02       21 阅读
  3. 数据库中关于结构化查询语言sql的简单介绍

    2024-03-10 10:12:02       21 阅读
  4. scikit-learn保姆级入门教程

    2024-03-10 10:12:02       22 阅读
  5. 服务器硬件基础知识

    2024-03-10 10:12:02       20 阅读
  6. 【Python+Selenium学习系列4】Selenium常用的方法

    2024-03-10 10:12:02       22 阅读
  7. 面试题:单例模式输出静态变量

    2024-03-10 10:12:02       21 阅读
  8. Kafka整理-Consumer(消费者)

    2024-03-10 10:12:02       21 阅读
  9. 微信小程序实现轮播图

    2024-03-10 10:12:02       23 阅读