C#实现的ACCESS的增删改查基本功能

ACCESS简介
Microsoft Access 是一款由微软开发的关系型数据库管理系统(RDBMS),它是Microsoft Office套件的一部分,旨在为中小型企业、开发人员及个人用户提供简便而强大的数据库功能。Access结合了数据库管理的强大功能与图形化界面的易用性,能够方便地创建、管理和分析数据。它广泛用于数据存储、查询、报告和应用程序开发。

本文介绍了用C#实现ACCESS数据库的增删改查功能。具体代码如下:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Text;namespace AccessTest
{class Program{// 定义数据库连接字符串,指定使用Microsoft ACE OLEDB 12.0提供程序连接Access数据库static string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Administrator\Desktop\AccessTest\bin\Debug\database.accdb";// 主方法,程序入口static void Main(string[] args){// 调用插入数据方法(目前注释掉)//InsertData("John Doe", 20, "A");// 修改数据(注释掉)//UpdateData(1, "John Smith", 21, "B");// 删除数据(注释掉)//DeleteData(1);// 查找并打印所有数据GetAllData();}// 删除数据:根据给定的ID删除记录static void DeleteData(int id){// 使用OleDbConnection连接到数据库using (OleDbConnection conn = new OleDbConnection(connectionString)){// 构建SQL查询,删除指定ID的记录string query = "DELETE FROM Students WHERE ID = @ID";OleDbCommand cmd = new OleDbCommand(query, conn);// 为查询命令添加参数,防止SQL注入cmd.Parameters.AddWithValue("@ID", id);// 打开数据库连接conn.Open();// 执行删除操作,返回受影响的行数int rowsAffected = cmd.ExecuteNonQuery();// 根据受影响的行数判断删除是否成功if (rowsAffected > 0){Console.WriteLine("Data deleted successfully.");}else{Console.WriteLine("No data found with the specified ID.");}}}// 修改数据:根据给定ID更新学生的姓名、年龄和成绩static void UpdateData(int id, string name, int age, string grade){// 使用OleDbConnection连接到数据库using (OleDbConnection conn = new OleDbConnection(connectionString)){// 构建SQL更新查询语句string query = "UPDATE Students SET Name = @Name, Age = @Age, Grade = @Grade WHERE ID = @ID";OleDbCommand cmd = new OleDbCommand(query, conn);// 为查询命令添加参数cmd.Parameters.AddWithValue("@Name", name);cmd.Parameters.AddWithValue("@Age", age);cmd.Parameters.AddWithValue("@Grade", grade);cmd.Parameters.AddWithValue("@ID", id);// 打开数据库连接conn.Open();// 执行更新操作,返回受影响的行数int rowsAffected = cmd.ExecuteNonQuery();// 根据受影响的行数判断更新是否成功if (rowsAffected > 0){Console.WriteLine("Data updated successfully.");}else{Console.WriteLine("No data found with the specified ID.");}}}// 获取并打印所有数据:查询数据库中所有学生信息并显示static void GetAllData(){// 使用OleDbConnection连接到数据库using (OleDbConnection conn = new OleDbConnection(connectionString)){// 构建SQL查询语句,获取所有学生记录string query = "SELECT * FROM Students";// 创建OleDbDataAdapter来执行查询并填充数据OleDbDataAdapter da = new OleDbDataAdapter(query, conn);DataTable dt = new DataTable();da.Fill(dt);// 打印表头Console.WriteLine("ID | Name       | Age | Grade");Console.WriteLine("--------------------------------");// 遍历所有数据行并输出foreach (DataRow row in dt.Rows){Console.WriteLine($"{row["ID"]} | {row["Name"]} | {row["Age"]} | {row["Grade"]}");}// 等待用户按键以结束Console.ReadKey();}}// 增加数据:插入新学生记录到数据库static void InsertData(string name, int age, string grade){// 使用OleDbConnection连接到数据库using (OleDbConnection conn = new OleDbConnection(connectionString)){// 构建SQL插入语句string query = "INSERT INTO Students (Name, Age, Grade) VALUES (@Name, @Age, @Grade)";OleDbCommand cmd = new OleDbCommand(query, conn);// 为查询命令添加参数cmd.Parameters.AddWithValue("@Name", name);cmd.Parameters.AddWithValue("@Age", age);cmd.Parameters.AddWithValue("@Grade", grade);// 打开数据库连接conn.Open();// 执行插入操作cmd.ExecuteNonQuery();// 输出操作成功的提示信息Console.WriteLine("Data inserted successfully.");}}}
}

主要功能:
连接数据库:所有与数据库交互的操作都是通过 OleDbConnection 来完成的,connectionString 连接到本地的 Access 数据库。
增、删、改、查操作:
增(InsertData):插入一条新的学生记录。
删(DeleteData):根据学生ID删除记录。
改(UpdateData):根据学生ID更新记录的姓名、年龄和成绩。
查(GetAllData):获取所有学生数据,并打印到控制台。
参数化查询:所有的SQL查询都使用参数化方式,防止SQL注入。
数据读取与展示:OleDbDataAdapter 用于从数据库读取数据,DataTable 用于存储并遍历查询结果。
注释重点:
连接数据库:通过 OleDbConnection 来打开连接,并使用 using 语句确保连接被及时关闭。
防止SQL注入:使用 OleDbCommand 的参数化查询来避免SQL注入攻击。
操作反馈:操作完成后,控制台会显示提示信息,告诉用户数据是否成功修改或删除。

3. 总结

本文展示了如何通过 C# 实现对 Access 数据库的基本增、删、改、查功能。在实际开发中,使用 C# 与 Access 数据库结合,可以快速实现数据操作和管理。通过注释掉的不同方法,可以根据需要执行相应的增、改、查、删操作。这种方式简洁有效,适用于中小型应用的数据库管理需求。

源码地址:https://download.csdn.net/download/weixin_44643352/90058758

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

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

相关文章

什么是 k8s CNI ?

1、什么是 CNI ? CNI 是容器网络接口 (Container Network Interface)的缩写。定义了容器运行时如何与网络插件进行交互,从而管理容器网络。只要开发者遵循 CNI 定义的规范就可以接入 kubernetes ,为 Pod 创建虚拟网卡…

深入理解进程的退出、等待与替换(Linux系统)

个人主页:敲上瘾-CSDN博客 个人专栏:Linux学习、游戏、数据结构、c语言基础、c学习、算法 目录 一、进程退出 1.退出场景 2.常见退出方法 3.退出码与退出信号 4._exit函数与exit函数 二、进程等待 1.什么是进程等待(是什么?…

【初阶数据结构与算法】二叉树链式结构刷题训练(Leetcode二叉树遍历、单值二叉树、相同的树、另一棵树的子树、对称二叉树)

文章目录 一、二叉树的遍历二、单值二叉树三、相同的树四、另一颗树的子树五、对称二叉树 一、二叉树的遍历 在链式二叉树的定义与实现中我们已经详细讲解了二叉树常见的三种遍历方式,以及层序遍历,这里给出链接:【初阶数据结构与算法】二叉树…

深入浅出 Go 语言 sync包中的互斥锁、条件变量

深入浅出 Go 语言 sync包中的互斥锁、条件变量 引言 在并发编程中,多个 Goroutine 同时访问共享资源可能会导致数据竞争(Race Condition),进而引发程序的不一致性或崩溃。为了确保并发程序的正确性和稳定性,Go 语言提…

制造业数据集成案例分享:3小时内实现MySQL到MySQL数据对接

ZZ刷新生产用料清单四化库存-制造一处-3小时:MySQL到MySQL数据集成案例分享 在现代制造业中,实时、准确的数据流动是确保生产效率和资源优化的关键。本文将分享一个实际运行的系统对接集成案例——“ZZ刷新生产用料清单四化库存-制造一处-3小时”&#…

OpenCV 图像基本操作

OpenCV快速通关 第一章:OpenCV 图像基本操作 第二章:OpenCV 图像基本操作 OpenCV 图像基本操作 OpenCV快速通关第二章:OpenCV 图像基本操作一、相关结构体与函数介绍(一)cv::Mat 结构体(二)cv:…

雨晨 2610(2)0.2510 Windows 11 24H2 Iot 企业版 LTSC 2024 极简 2in1

文件: 雨晨 2610(2)0.2510 Windows 11 24H2 Iot 企业版 LTSC 2024 极简 2in1 install.esd 索引: 1 名称: Windows 11 IoT 企业版 LTSC 极简 26100.2510 描述: Windows 11 IoT 企业版 LTSC 极简 26100.2510 By YCDISM RTM 2025 24-12-07 大小: 8,176,452,990 个字节 索引: 2 …

PHP保存base64编码图片,图片有一部分是灰色块儿,原因和解决办法

文章目录 场景原因解决方案完整的代码前端代码php代码 场景 我有个需求,移动端h5上传多张的图片。用input file可以上传多张,但是现在照片体积越来越大,同时上传多张会因为体积过大,导致上传失败。如果是小程序会好很多&#xff…

【CSP CCF记录】202212-2第28次认证 训练计划

题目 样例1输入 10 5 0 0 0 0 0 1 2 3 2 10 样例1输出 1 1 1 1 1 10 9 8 9 1 样例1解释 五项科目间没有依赖关系,都可以从第 1 天就开始训练。 10天时间恰好可以完成所有科目的训练。其中科目 1 耗时仅 1天,所以最晚可以拖延到第 10 天再开始训练&…

gitee

Git 是一个开源的 [ 分布式 ][ 版本控制系统 ] ,用于敏捷高效地 处理任何或小或大的项目 Git 非常容易学习,低植入,高性能。因为拥有轻量的本地分支,易用的暂存区,和多工作流的特点,它超越了类似Subversio…

Spring——SpringBean初始接口

摘要 本文详细介绍了Spring框架中SpringBean的初始化接口和注解,包括BeanPostProcessor接口、InitializingBean接口和PostConstruct注解。文章解释了这些接口和注解的原理、作用、适用场景,并提供了示例代码。最后,对比了不同SpringBean初始…

「嵌入式系统设计与实现」书评:学习一个STM32的案例

本文最早发表于电子发烧友论坛:【新提醒】【「嵌入式系统设计与实现」阅读体验】 学习一个STM32的案例 - 发烧友官方/活动 - 电子技术论坛 - 广受欢迎的专业电子论坛!https://bbs.elecfans.com/jishu_2467617_1_1.html 感谢电子发烧友论坛和电子工业出版社的赠书。 …

操作系统——大容量存储结构

笔记内容及图片整理自XJTUSE “操作系统” 课程ppt,仅供学习交流使用,谢谢。 大容量存储结构概述 磁盘 磁盘为现代计算机系统提供大量外存。每个盘片为平的圆状(类似CD),普通盘片直径为4.5~9.0厘米。盘片的两面都涂着…

Redis从入门到进阶(总结)

以下内容均以CentOS7为背景。 一、Redis安装及启动 mysql(读:2000/s;写:600/s) redis(读:10w/s;写:8w/s)通过官方给出的数据单机并发可以达到10w/s&#xf…

Java进阶(注解,设计模式,对象克隆)

Java进阶(注解,设计模式,对象克隆) 一. 注解 1.1 什么是注解 java中注解(Annotation),又称java标注,是一种特殊的注释 可以添加在包,类,成员变量,方法,参数等内容上 注解会随同…

使用 Gin 框架构建 RESTful 博客 API

使用 Gin 框架构建 RESTful 博客 API 引言 在现代 Web 开发中,RESTful API 是一种非常流行的设计风格,它通过 HTTP 协议与客户端进行通信,提供了灵活且易于扩展的接口。Go 语言以其高效的并发处理能力和简洁的语法,成为了构建高…

Leecode刷题C语言之骑士在棋盘上的概率

执行结果:通过 执行用时和内存消耗如下: 代码如下: static int dirs[8][2] {{-2, -1}, {-2, 1}, {2, -1}, {2, 1}, {-1, -2}, {-1, 2}, {1, -2}, {1, 2}};double knightProbability(int n, int k, int row, int column){double dp[200][30][30];mem…

21. C++STL 7(8000字详解list及其迭代器的模拟实现)

⭐本篇重点:STL中的list及其迭代器的模拟实现和测试 ⭐本篇代码:c学习 橘子真甜/c-learning-of-yzc - 码云 - 开源中国 (gitee.com) 目录 一. list的节点 二. list的迭代器 2.1 迭代器框架 2.2 迭代器实现 三. list的实现 3.1 list的构造函数 3.…

Docker打包SpringBoot项目

一、项目打成jar包 在进行docker打包之前,先确定一下,项目能够正常的打成JAR包,并且启动之后能够正常的访问。这一步看似是可有可无,但是能避免后期的一些无厘头问题。 二、Dockerfile 项目打包成功之后,需要编写Doc…

零基础学鸿蒙开发--第九篇--网络请求

12. ⽹络请求 鸿蒙系统提供了 http 模块 ⽤于发送 http 请求,另外, OpenHarmony社区基于该模块将前端开发中常⽤的⽹络请 求库 axios 移植到了鸿蒙系统,因此我们也可以在鸿蒙系统中使⽤ axios 发送 http 请求,下⾯重点为⼤家介绍…