C# 连接ACCESS数据库

您所在的位置:网站首页 access数据库如何更新数据 C# 连接ACCESS数据库

C# 连接ACCESS数据库

2024-02-24 13:30| 来源: 网络整理| 查看: 265

基于上一篇博客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的操作都一样,所以,也就这样吧!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3