C#操作Access数据库

第一章 简介

Access数据的优点:
1,存储方式单一 Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为 .mdb 的数据库文件中,便于用户的操作和管理。
2,面向对象
3,界面友好,易操作
4,轻量级,数据库(.mdb)文件可以直接加载到C#项目文件里(个人认为它最大的优点就是这个)
连接Access数据库的步骤和连接SQL Server Oracle MySql 数据库的方式类似分为7 步:
1,新建OleDbConnection对象 并传入连接字符串 获得与数据库的连接

OleDbConnection conn = new OleDbConnection("provider = microsoft.Jet.OLEDB.4.0;Data Source = D:\\Student.mdb");

2,使用OleDbConnection对象的实例conn 新建OleDbCommand对象

OleDbCommand comm = conn.CreateCommand();

3,通过OleDbCommand的实例comm传入Sql语句

comm.CommandText = "select * from student";

4,打开连接

conn.Open();

5,调用实例comm的ExecuteReader()并保存在OleDbDataReader对象中

OleDbDataReader dr = comm.ExecuteReader();

dr 里面就是从数据库查到的数据 可以对它进行相关的操作

6,释放资源

conn.Dispose();

7,关闭连接

conn.Close();

第二章 C#与ACCESS的交互操作

第一节 利用C#创建一个ACCESS数据库文件

A.mdb文件是原来没有的,程序需要创建一个然后往里面写数据!
1.新建工程 —进入解决方案->引用->添加引用 —选择com标签下的“Microsoft ADO Ext. 2.8 for DDL and Security”—点击OK
在这里插入图片描述
2.添加引用:using ADOX;
3.用ADOX创建access数据库

ADOX.Catalog catalog = new Catalog();
catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;Jet");

这时在运行在debug文件夹下就可以看到这个mdb了。
其实何必要创建呢,我每次都是建一个空白的mdb文件,需要的时候再拷贝一下就可以啦。

第二节 C#在MDB文件中创建表

生成表NewTable,该表有文本字段Field1和整型字段Field2

string conStr = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = test.mdb";
OleDbConnection conn = new OleDbConnection(conStr);
string dbstr = "CREATE TABLE NewTable(Field1 TEXT, Field2 INTEGER)";
OleDbCommand oleDbCom = new OleDbCommand(dbstr, conn);
conn.Open();
oleDbCom.ExecuteNonQuery();
conn.Close();

第三节 显示数据库中表格内容

数据流:
数据库—创建DataAdapter实例就建立好了和数据库的关联——通过DataAdapter实例的Fill指令将数据填充到Dataset——选择Dataset中的表格添加到DataTable——将表格填充到dataGridView1.DataSource。

开始前::先建立一个数据库test.mdb,在其中建立表格NewTable,表格中自己添加一些内容;

 public void viewAccessInfo()
        {
            //【1】连接数据库
            string connect_str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb";
            OleDbConnection thisConnection = new OleDbConnection(connect_str);
            //【2】编写SQL指令,星号(*)是选取所有列的快捷方式。
            string sql = "select * from NewTable";
            //OleDbDataAdapter是 DataSet 和数据源之间的桥梁,用于检索和保存数据。
            OleDbDataAdapter thisAdapter = new OleDbDataAdapter(sql, thisConnection);
            //DataSet可以理解成在应用程序中的数据库
            DataSet thisDataSet = new System.Data.DataSet();
            //使用 Fill 将数据从数据源加载到 DataSet 中
            thisAdapter.Fill(thisDataSet, "table");
            //DataTable可以理解成DataSet的一个表格;将table中的表格内容添加到datatable
            DataTable dt = thisDataSet.Tables["table"];
            //将数据表和dataGridView1进行绑定
            dataGridView1.DataSource = dt;
            //关闭连接
            thisConnection.Close();
        }

运行效果如下:在这里插入图片描述
1,将DataGridView控件的界面大小随着我们显示的内容变化而变化。只要设置AutoSizeCloumnsMode这个属性,将它的属性值设为Fill就可以了。
2,有些时候我们想让DataGridView控件的大小随着窗体或者是页面的大小变化而变化,两个方法分别是:
(1)设置DataGridView的属性Anchor的值为上下左右就可以了。
(2)设置Dock属性为Fill,就是将DataGridView填满整个窗体或者是页面。
在这里插入图片描述
运行效果如下:
在这里插入图片描述

第四节 表格中内容更新到数据库

数据流:
将数据表在datagridview中显示出来——将dataGridView1.DataSource转换成表格形式——通过OleDbCommandBuilder选取需要添加的数据库表格和连接,与前面的OleDbDataAdapter对象关联——通过adp.Update完成更新。
实现步骤如下:
1. 建立数据库连接
2. 实例化OleDbDataAdapter对象!
3. 建立一个DataSet对象,并把执行select语句得到的记录添加到其中
4.建立OleDbCommandBuilder对象!并让它与我们前面的OleDbDataAdapter对象关联
5. 对DataSet中包含表的特定记录进行增加、删除、修改
6. 执行OleDbDataAdapter对象的Update命令更新数据库
7. 关闭数据库连接

        private void Form1_Load(object sender, EventArgs e)
        {
            //viewAccessInfo();//显示数据库文件的内容到画面
            DateToAccess();
        }
        public void DateToAccess()
        {
            string str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb";
            OleDbConnection conn = new OleDbConnection(str);
            adp = new OleDbDataAdapter("select * from NewTable", conn);
            DataTable dt = new DataTable();
            adp.Fill(dt);
            dataGridView1.DataSource = dt;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            var dt = (DataTable)dataGridView1.DataSource;
            OleDbCommandBuilder cmdb = new OleDbCommandBuilder(adp);
            adp.Update(dt);
        }

注意事项:
1.不含主键字段,执行Select语句没有任何问题,但数据库无法执行Insert、Update和Delete语句。若要对显示出来的数据进行修改并更新数据库,务必把数据库表格的主键(Primary Key)带上。
2.OleDbCommand属于DBcommand(还包括odbcCommand\OracleCommand\SqlCommand)类派生,DBcommand的作用是:当建立与数据源的连接后,可以使用 DBCommand 对象来执行命令并从数据源中返回结果;
3.DataAdapter 用于从数据源检索数据并填充 DataSet 中的表。DataAdapter 还将对 DataSet 的更改解析回数据源。DataAdapter 使用 .NET Framework 数据提供程序的 Connection 对象连接到数据源,并使用 Command 对象从数据源检索数据以及将更改解析回数据源。
4.OleDbCommandBuilder就是相当于updatecommand,但是它是自动调用的。

第三章 SQL基础教程

单击打开教程链接

持续更新中。。。。。。。。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:鲸 设计师:meimeiellie 返回首页
评论

打赏作者

金增辉

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值