C# 连接ACCESS数据库 - 增删改查(详细步骤)

基于上一篇博客C# 连接MySQL实现增删改查(详细步骤),现在记录下另一篇博客,如何连接ACCESS数据库实现增删改查。
总体上也不算很难,因为微软的Visual Studio 本就支持连接该数据库 ,不像MySQL数据库,还得下载插件安装才行!


创建ACCESS数据库

按照图片顺序创建一个简单的数据库吧!

一、在自己的windows哪里找到该数据库,并双击打开在这里插入图片描述

二、修改一下数据库的保存路径,并创建空白数据库
在这里插入图片描述

三、在创建的表格中添加字段,并添加一些数据,最后ctrl + s保存一下,并修改该表名为student
在这里插入图片描述

好了,数据库和表都已经创建好了


Visual Studio 中添加数据库

按照图片步骤完成

一、在工具菜单中单击-连接到数据库
在这里插入图片描述

二、在弹出的窗口中:1.更改,选择对应的数据库;2.浏览,选择自己刚刚创建好的数据库路径;3.点击测试连接;4.单击高级(请看图三)
在这里插入图片描述

三、单击高级后,在弹出的高级属性中,复制最下面一行代码,用于连接该数据库。复制完后点击确认即可。(注意:一定要复制,如果不小心遗漏了,请看图五找回)
在这里插入图片描述
四、右侧单击-服务器资环管理器,就可以看到我们添加进来的数据库了
在这里插入图片描述

五、可以按下图操作找回连接数据库的代码
在这里插入图片描述

好了,Visual Studio 中把数据库添加进来了,下面就可以进行代码连接数据库了。


代码连接ACCESS数据库,实现增删改查

需包含的命名空间:
using System.Data;
using System.Data.OleDb;

我们刚刚复制的:
在这里插入图片描述
画横线部分就是我们刚刚复制的。

我们在创建连接数据库对象时需要使用到它来进行初始化OleDbConnection。

剩下来的增删改查操作就不详细讲了,把代码写下来,供大家参考观看,代码中都有详细注释,自己慢慢研究吧,不难!

using System;
using System.Collections.Generic;
using System.Data;			// 需包含的命名空间
using System.Data.OleDb;	// 需包含的命名空间
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Csharp连接ACCESS数据库 {
    class Program {
        static void Main(string[] args) {
            // 创建连接对象
            OleDbConnection odc = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\yangg\Desktop\Database3.accdb");

			// 表字段
            int age = 0;
            int id = 0;
            string name = "";
            // 返回受影响的行数
            int result = 0;


            #region 增加

            try {

                // 如果连接是关闭的,才进行打开
                if (odc.State == ConnectionState.Closed) {
                    odc.Open(); // 打开连接
                }

                Console.WriteLine("请输入插入的id:");
                id = int.Parse(Console.ReadLine());
                Console.WriteLine("请输入插入的name:");
                name = Console.ReadLine();
                Console.WriteLine("请输入插入的age:");
                age = int.Parse(Console.ReadLine());

                // sql操作语句
                string insert = "insert into student values(" + id + ", '" + name + "', " + age + ");";

                // 创建用于实现SQL语句的对象
                OleDbCommand oleDbCommand = new OleDbCommand(insert, odc);  // 参数一:sql语句 参数二:连接数据库的对象

                // 执行,并返回受影响的行数
                result = oleDbCommand.ExecuteNonQuery();

                Console.WriteLine("受影响的行数({0})", result);

            }
            catch (Exception e) {
                MessageBox.Show(e.ToString(), "提示");
            }
            finally {
                odc.Close();    // 断开连接
            }

            #endregion




            #region 删除

            try {

                // 如果连接是关闭的,才进行打开
                if (odc.State == ConnectionState.Closed) {
                    odc.Open();
                }

                Console.WriteLine("请输入删除的id:");
                id = int.Parse(Console.ReadLine());

                // sql操作语句
                string delete = "delete from student where id = " + id;

                // 创建用于实现SQL语句的对象
                OleDbCommand oleDbCommand2 = new OleDbCommand(delete, odc); // 参数一:sql语句 参数二:连接数据库的对象

                // 执行,并返回受影响的行数
                result = oleDbCommand2.ExecuteNonQuery();

                Console.WriteLine("受影响的行数({0})", result);

            }
            catch (Exception e) {
                MessageBox.Show(e.ToString(), "提示");
            }
            finally {
                odc.Close();
            }


            #endregion




            #region 修改

            try {

                // 如果连接是关闭的,才进行打开
                if (odc.State == ConnectionState.Closed) {
                    odc.Open();
                }

                Console.WriteLine("请输入修改的id:");
                id = int.Parse(Console.ReadLine());
                Console.WriteLine("请输入修改的name:");
                name = Console.ReadLine();
                Console.WriteLine("请输入修改该的age:");
                age = int.Parse(Console.ReadLine());

                // sql操作语句
                string update = "update student set Name = '" + name + "', Age = " + age + " where Id = " + id;

                // 创建用于实现SQL语句的对象
                OleDbCommand oleDbCommand3 = new OleDbCommand(update, odc);

                // 执行,并返回受影响的行数
                result = oleDbCommand3.ExecuteNonQuery();

                Console.WriteLine("受影响的行数({0})", result);

            }
            catch (Exception e) {
                MessageBox.Show(e.ToString(), "提示");
            }
            finally {
                odc.Close();
            }

            #endregion




            #region 查询

            try {

                // 如果连接是关闭的,才进行打开
                if (odc.State == ConnectionState.Closed) {
                    odc.Open();
                }

                Console.WriteLine("请输入查询的age:");
                age = int.Parse(Console.ReadLine());

                // sql操作语句
                string select = "select * from student where Age = " + age;

                // 创建设配器对象
                OleDbDataAdapter dbDataAdapter = new OleDbDataAdapter(select, odc);

                // 新建表对象
                DataTable dataTable = new DataTable();

                // 用设配器对象填充表对象
                dbDataAdapter.Fill(dataTable);

                // 将查找到的数据遍历输出
                foreach (DataRow dr in dataTable.Rows) {
                    Console.WriteLine("id = {0} name = {1} age = {2}", dr[0], dr[1], dr[2]);
                }

            }
            catch (Exception e) {
                MessageBox.Show(e.ToString(), "提示");
            }
            finally {
                odc.Close();
            }

            #endregion

            Console.ReadKey();
        }
    }
}

// 如果连接是关闭的,才进行打开
if (odc.State == ConnectionState.Closed) {
odc.Open();
}

odc.Close();

代码中这样做是为了防止多次打开而浪费系统资源!


总结:差不多就这样了,增删改的操作都是一样的,就只有就有些不一样,但不影响。ACCESS数据库的操作和SQL的操作都一样,所以,也就这样吧!

  • 21
    点赞
  • 127
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cpp_learners

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值