欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# winform读写Access数据库简单示例

程序员文章站 2022-05-01 20:01:13
最近在做使用C#访问Access数据库的项目,之前没有使用过Access,所以中间查了不少资料,对相关操作有了一个简单的印象。本文简单介绍如何使用C#读取Access数据,并将修改重新保存回Access。开发环境(winform):1. visual studio 20192. .net framework 4.7.23. access 20074. access数据表tn_member,表结构内容如下图:......

    最近在做使用C#访问Access数据库的项目,之前没有使用过Access,所以中间查了不少资料,对相关操作有了一个简单的印象。本文简单介绍如何使用C#读取Access数据,并将修改重新保存回Access

    开发环境(winform):

        1. visual studio 2019

        2. .net framework 4.7.2

        3. access 2007

        4. access数据表tn_member,表结构内容如下图:

        C# winform读写Access数据库简单示例

    几个类介绍:

        1. OleDBConnection:表示与数据源的开放连接,这个类就像access数据库与外部的一个接口,外部程序的操作都通过此接口

        2. OleDbDataAdapter:用于从access数据源检索数据并填充 DataSet 中的表,同时 DataAdapter 还将对 DataSet 的更改解析回数据源。

        3. OleDbCommandBuilder:自动生成用于协调所做的更改命令,它能够根据OleDbDataAdapter的SelectCommand属性自动的生成InsertCommand,UpdateCommand与DeleteCommand等命令。

        它们的关系可以用下图表示:

        C# winform读写Access数据库简单示例

    读写流程:

        1. 使用连接字符串,构造OleDbConnection对象,同时调用open方法打开连接

        2. 使用connection对象,构造OleDbDataAdapter适配器对象

        3. 构造OleDbCommandBuilder对象,并将此对象和OleDbDataAdapter适配器对象关联

        4. 使用OleDbDataAdapter适配器对象填充DataTable或将变动保存到Access数据库

    具体实例代码如下:

     public partial class Form1 : Form
    {
        // 连接字符串
        private string connStr = @"Provider= Microsoft.ACE.OLEDB.12.0;Jet OLEDB:DataBase Password=;Data Source=E:\db\data.accdb;";

        //声明
        private OleDbConnection conn = null;
        private OleDbDataAdapter adapter = null;
        private DataTable dt = null;

        public Form1()
        {
            InitializeComponent();
        }

        private void btn_read_Click(object sender, EventArgs e)
        {
            // 连接数据库,需要传递连接字符串
            conn = new OleDbConnection(connStr);
            // 打开数据库连接
            conn.Open();

            // "Select * from tn_member"为SQL语句,意思是从数据库中选择叫做“tn_member”的表,“conn”为连接
            adapter = new OleDbDataAdapter("Select * from tn_member", conn);
            // CommandBuilder对应的是数据适配器,需要传递参数
            var cmd = new OleDbCommandBuilder(adapter);

            // 在内存中创建一个DataTable,用来存放、修改数据库表
            dt = new DataTable();
            // 通过适配器把表的数据填充到内存dt
            adapter.Fill(dt);

            // 把数据显示到界面
            dataGridView1.DataSource = dt.DefaultView;
        }

        private void btn_write_Click(object sender, EventArgs e)
        {
            try
            {
                // 按下按钮后,把内存中修改的部分传递给适配器,再通过适配器传递给数据库
                adapter.Update(dt);
                // 清除内存中存放的表数据
                dt.Clear();
                // 重新读取已经改变过的表数据
                adapter.Fill(dt);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {

            }
        }
    }

     运行代码,点击读取access按钮,读取数据,如下图:

    C# winform读写Access数据库简单示例

    然后修改name字段的值,点击写access按钮,可以看到结果如下:

        winform界面:

        C# winform读写Access数据库简单示例

        access数据表:

        C# winform读写Access数据库简单示例

          

本文地址:https://blog.csdn.net/ztnhnr/article/details/109005014

相关标签: C#