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

ACCESS简介

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

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

cs 复制代码
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

相关推荐
python机器学习建模17 分钟前
科研论文必须要了解的25个学术网站
数据库
凌盛羽1 小时前
C#对Excel表csv文件的读写操作
开发语言·windows·物联网·microsoft·c#·excel
J.P.August1 小时前
Oracle DataGuard启动与关闭顺序
数据库·oracle
尚雷55801 小时前
Oracle 与 达梦 数据库 对比
数据库·oracle·达梦数据库
小猿姐3 小时前
Ape-DTS:开源 DTS 工具,助力自建 MySQL、PostgreSQL 迁移上云
数据库·mysql·postgresql·开源
百香果果ccc3 小时前
MySQL中的单行函数和聚合函数
数据库·mysql
摸摸陌陌3 小时前
Redis快速入门
数据库·redis·缓存
CV大法好3 小时前
刘铁猛p3 C# 控制台程序引用System.Windows.Forms报错,无法引用程序集 解决方法
开发语言·c#
Elastic 中国社区官方博客3 小时前
Elasticsearch Serverless 中的数据流自动分片
大数据·数据库·elasticsearch·搜索引擎·serverless·时序数据库
Minyy113 小时前
牛客网刷题SQL--高级查询
数据库·sql