码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Dev++软件连接Sqlite


    Dev++中的C语言使用连接sqlite数据库

    1.下载sqlite3.dll和sqlite3.h

    sqlite3.dll类似于.c文件,封装了函数的原型。
    sqlite3.h库文件声明函数。

    官网地址下载:sqlite

    • sqlite-amalgamation-3460000.zip
    • sqlite-dll-win-x64-3460000.zip

    2.新建c项目

    1. sqlite3.dll文件添加到项目中
        项目-->项目属性-->参数-->加入库或对象,选择sqlite3.dll后确定。
        我的路径:"D:/Program Files (x86)/Dev-Cpp/MinGW64/lib/sqlite3.dll"
    
    2. sqlite3.h文件放到项目文件夹中在这里插入图片描述
    3.更换main.c代码
    #include 
    #include "sqlite3.h " //自定义的库文件使用""
    
    void check_db_error1(int rc, const char *errmsg, sqlite3 *db) {
        if (rc != SQLITE_OK) {
            fprintf(stderr, "SQL error: %s\n", errmsg);
            sqlite3_free((void*)errmsg);
            sqlite3_close(db);
        }
    }
    
    int main() {
        sqlite3 *db;
        char *errmsg = 0;
        int rc;
    
        // 打开数据库,如果不存在则创建
        rc = sqlite3_open("test.db", &db);
        if (rc != SQLITE_OK) {
            fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(db));
            sqlite3_close(db);
            return 1;
        }
    
        // 创建表
        const char *create_table_sql = "CREATE TABLE IF NOT EXISTS People ("
                                       "ID INTEGER PRIMARY KEY AUTOINCREMENT, "
                                       "Name TEXT NOT NULL, "
                                       "Age INTEGER NOT NULL, "
                                       "Date TEXT NOT NULL);";
        
        rc = sqlite3_exec(db, create_table_sql, 0, 0, &errmsg);
        check_db_error1(rc, errmsg, db);
        printf("Table created successfully.\n");
    
        // 插入数据
        const char *insert_data_sql = "INSERT INTO People (Name, Age, Date) VALUES ('Alice', 30, '2024-06-27');";
        
        rc = sqlite3_exec(db, insert_data_sql, 0, 0, &errmsg);
        check_db_error(rc, errmsg, db);
        printf("Data inserted successfully.\n");
    
        // 关闭数据库
        sqlite3_close(db);
        return 0;
    }
    
    

    编译运行出现successfully为成功。

    4. 多级菜单插入修改删除sqlite的数据

    题目和最终效果效果如下。
    在这里插入图片描述

    参考链接:sqlite下载说明
    sql语言大部分chat生成,多级菜单内容是自己写的。

  • 相关阅读:
    【ICPR 2021】遥感图中的密集小目标检测:Tiny Object Detection in Aerial Images
    Android 接入穿山甲广告
    真题集P115---2015年真题(以及 力扣54)
    【面试题】写一个脚本统计一个文本文件的行数
    Zookeeper选举Leader源码剖析(二)
    漏洞复现--用友 畅捷通T+ .net反序列化RCE
    最经典的解析LSA数据库(第六课)
    西瓜书重温(七): 贝叶斯分类器(手推+代码demo)
    [Leetcode] 0836. 矩形重叠
    易捷行云EasyStack创始人兼CEO陈喜伦:坚持开源生态产品化 与社区和客户齐创新共成长
  • 原文地址:https://blog.csdn.net/weixin_43300573/article/details/140039241
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号