Dev++软件连接Sqlite

news2024/11/17 17:45:17

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 <stdio.h>
#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生成,多级菜单内容是自己写的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1882796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

es学习初步总结

看api看麻了不知道意义在哪里&#xff0c;所以就简单总结点我觉得有用的东西 基本数据结构解析 分为了文档&#xff0c;索引和映射 索引可以理解为一张表&#xff0c;映射描述了索引的数据结构&#xff0c;而文档就是一个个具体的行 所以一般我们需要在申明索引的时候同时申…

STC8/32 软硬件I2C通讯方式扫描I2C设备地址

STC8/32 软硬件I2C通讯方式扫描I2C设备地址 📄主要用于检测挂载在I2C总线上的设备。在驱动I2C设备之前,如果能扫描到该设备,说明通讯设备可以连接的上,在提前未知I2C地址的情况下,可以方便后面的驱动代码的完善。 🔬扫描测试效果:(测试mpu6050以及ssd1306 i2c oled )…

Java源码实现《植物大战僵尸》

前言 学Java的朋友们&#xff0c;福利来了&#xff0c;今天小编给大家带来了一款 植物大战僵尸源码&#xff0c;看图: 视频演示 java植物大战僵尸 环境JDK1.8 类继承UML图 源码实现 我们先从main函数看起&#xff0c;继承了javafx.application.Application。JavaFx是Java图形…

3d里面减小模型大小的键是什么意思?---模大狮模型网

在3D建模和动画制作中&#xff0c;调整模型的大小是常见的操作&#xff0c;但这并不仅仅意味着简单地改变模型的尺寸。特别是当我们谈论到"减小模型大小的键"时&#xff0c;涉及到更深层次的技术和工作流程。让我们深入探讨这一话题&#xff0c;理解在3D环境中如何有…

@Cacheable解决复杂对象形参导致的缓存失效问题(如Map参数)

在Spring中使用 Cacheable 注解可以非常方便地实现方法的自动缓存机制。如以下代码&#xff1a; Cacheable(value "YwtbToken", key "#p0") public String createToken(String dlzh) {...}但当Cacheable 注解修饰的方法参数使用了复杂对象&#xff0c;如…

WMS、ERP、MES之间的关系

WMS&#xff08;仓库管理系统&#xff09;、ERP&#xff08;企业资源计划&#xff09;、MES&#xff08;制造执行系统&#xff09;是企业管理和运作中常见的三种系统&#xff0c;它们在不同的层面上发挥作用&#xff0c;但之间又有紧密的联系。三者之间的区别如下&#xff1a; …

中电金信:银行业私有云何去何从

2009年&#xff0c;云计算开始从概念走向实践。在这一年&#xff0c;Gartner在预测2010十大发展趋势中&#xff0c;将云计算列在榜首。在这之后&#xff0c;谷歌、亚马逊、IBM等科技巨头纷纷加码对云计算的研发投入。2010年正式迎来云计算时代&#xff0c;这一年也被定为“云元…

window用户层文件系统fuse(wdm驱动)

dokany https://github.com/dokan-dev/dokany.git 需要安装wdk&#xff0c;2022可以直接通过windows driver扩展安装 项目使用nuget添加wdk依赖 Version of Uwp Package 10.0.26100.0 does not match TargetPlatformVersion 10.0.22621.0. windows sdk版本填写正确的版本号…

批量签章签名如何实现?

在数字化转型的浪潮中&#xff0c;电子签章技术已经成为了企业运营和个人业务处理中不可或缺的一部分。本文将详细介绍一种先进的电子签章机&#xff0c;它不仅符合国家安全标准&#xff0c;还具备多样化的签章功能和高效的任务处理能力。 电子签章机是一种高度集成的设备&…

告别流失,拥抱增长!Xinstall智能邀请系统,让你的App拉新更高效

在移动互联网时代&#xff0c;App的推广和运营面临着诸多挑战。其中&#xff0c;如何有效地进行邀请拉新活动&#xff0c;吸引更多新用户&#xff0c;成为了每个运营者都需要面对的问题。今天&#xff0c;我们将为大家介绍一款能够帮助你轻松解决这一难题的神器——Xinstall。 …

智芯开发板----时钟的使用

一、开发板时钟概述 介绍 Z20K11xM 的时钟结构&#xff0c;分布以及各个外设时钟源的选择。SCC 模块用于选择系统时钟&#xff0c;产生 core clock、bus clock 和 flash clock&#xff0c;分 别用于驱动 core 及高速外设、普通外设和 flash。PARCC 模块用于单独设置 每个外设的…

【Python机器学习】模型评估与改进——留一法交叉验证

留一法也是一种常见的交叉验证方法。 我们可以将留一法交叉验证看作是每折只包含单个样本的k折交叉验证。对于每次划分&#xff0c;选择单个数据点作为测试集。这种方法可能非常耗时&#xff0c;特征是对于大型数据&#xff0c;但是小型数据集上有时可以给出更好的估计结果&am…

大数据开发中的数据倾斜问题

数据倾斜是大数据开发中常见的性能瓶颈&#xff0c;了解其原因并采取有效的解决方案对系统性能至关重要。本文将从数据倾斜的影响、解决方法及示例代码等方面进行详细讨论。 目录 1. 数据倾斜的影响2. 解决数据倾斜的方法调整分区键预聚合倾斜处理逻辑 3. 进一步解决数据倾斜的…

firewalld(3)zone配置

简介 前面文章我们已经介绍了firewalld的安装,配置文件介绍、简单的规则查询,本篇文章主要介绍zone的配置。前面我们介绍了firewalld默认的zone和不同zone的功能,下面我们就直接进入zone的具体配置使用。 配置zone的方式 图形配置工具 firewall-config: 这是一个图形…

二、 操作系统知识(考点篇)

一、操作系统概述 操作系统定义&#xff1a; 能有效地组织和管理系统中的各种软/硬件资源&#xff0c;合理地组织计算机系统工作流程&#xff0c;控制程序的执行&#xff0c;并且向用户提供一个良好的工作环境和友好的接口。 操作系统有三个重要的作用&#xff1a; 第一&am…

昇思25天学习打卡营第6天|Vision Transformer

文章目录 昇思MindSpore应用实践基于MindSpore的Vision Transformer1、Vision Transformer&#xff08;ViT&#xff09;简介网络结构 2、Attention模块Encoder部分用到的功能函数&#xff1a;整体构建ViT模型 3、模型训练4、模型验证 Reference 昇思MindSpore应用实践 本系列文…

关于windows,wifi图标显示不了的解决方法

解决方法一&#xff08;解决了我的问题的方法&#xff09;&#xff1a; winr -->输入 regedit 打开注册表 --> 删除HKEY-CLASSES_ROOT\CLSID\{3d09c1ca-2bcc-40b7-b9bb-3f3ec143a87b} CLSID在下面仔细找&#xff0c;然后找到09开头那个删掉重启就可以了&#xff0c;可能…

短视频电商源码如何选择

在数字时代的浪潮下&#xff0c;短视频电商以其直观、生动、互动性强的特点&#xff0c;迅速崛起成为电商行业的一股新势力。对于有志于进军短视频电商领域的创业者来说&#xff0c;选择一款合适的短视频电商源码至关重要。本文将从多个角度探讨如何选择短视频电商源码&#xf…

ARC180 --- B - Improve Inversions 题解

B - Improve Inversions &#xff1a; 题目大意&#xff1a; 思路解析&#xff1a; 假设现在出现了这样的情况 ......6 ......... 4 3 2 1&#xff0c;可以发现最好的交换方式为 6 和 4交换&#xff0c;然后4 3交换&#xff0c;然后3和2交换&#xff0c;然后2和1交换得到 .…

工业智能网关的功能特点有哪些?工业智能网关在工业企业的应用-天拓四方

随着工业4.0时代的到来&#xff0c;数字化转型已成为工业企业提升竞争力、实现可持续发展的必经之路。在这一过程中&#xff0c;工业智能网关以其强大的连接、数据处理和安全防护能力&#xff0c;成为推动工业数字化转型的关键力量。本文将深入探讨工业智能网关的功能特点、应用…