winform 操作Access

//读出access数据

1、打开access新建一个表,命名为GropName,在该表中新建四个列“组名”-文本,“设备地址”-文本,“设备名称”-文本,“状态”-是否,将组名设置为主键(学习目的,请自己输入数据),保存文件为DataBase.mdb;

2、打开VS2012,新建c#窗体项目,设置项目名为GropRead,保存项目GropRead,将DataBase.mdb拷贝至项目中的Projects\GropRead\GropRead\bin\Debug文件夹;

3、在自动生成的设计器窗体上拖入dataGridView控件,命名为dgv_grop,双击设计窗体,进入代码编写环境

在private void Form1_Load(object sender, EventArgs e)中写入

//数据库连接字符串
string RoadPath = "Provider=Microsoft.Jet.OleDb.4.0;Data source=DataBase.mdb";

//连接数据库
OleDbConnection AccessConnect = new OleDbConnection(RoadPath); //定义数据库连接对象

AccessConnect.Open();//打开数据库连接
string ReadSql = "SELECT * FROM GropName";//定义SQL  *表示读出数据库所有数据

//string ReadSql = "SELECT 组名,设备地址 FROM GropName";//定义SQL  表示读出数据库中的组名和设备地址字段
//string ReadSql = "SELECT 组名,设备地址 FROM GropName where 设备名称=‘风机’ and 状态=true";

//读出设备名称是“风机”并且状态为true的所有设备的“组名”和“设备地址”两个字段

OleDbDataAdapter adp = new OleDbDataAdapter(ReadSql, AccessConnect);//从数据库读出数据到数据库适配器
DataSet ds = new DataSet();
ds.Clear();
adp.Fill(ds, "GropName");
dgv_grop.DataSource = null;
dgv_grop.DataSource = ds.Tables[0].DefaultView;

 

ds.Dispose();
adp.Dispose();

AccessConnect.Dispose();
AccessConnect.Close();

4.运行编译,看看吧。

5.下面,我们稍微改进一下上述程序,将显示数据的dataGridView控件自动绑定数据集改为手动绑定数据集。

6.将上述代码更改为:

//数据库连接字符串
string RoadPath = "Provider=Microsoft.Jet.OleDb.4.0;Data source=DataBase.mdb";

//连接数据库
OleDbConnection AccessConnect = new OleDbConnection(RoadPath); //定义数据库连接对象

 

AccessConnect.Open();//打开数据库连接
string ReadSql = "SELECT * FROM GropName";//定义SQL  *表示读出数据库所有数据

//string ReadSql = "SELECT 组名,设备地址 FROM GropName";//定义SQL  表示读出数据库中的组名和设备地址字段
//string ReadSql = "SELECT 组名,设备地址 FROM GropName where 设备名称=‘风机’ and 状态=true";

//读出设备名称是“风机”并且状态为true的所有设备的“组名”和“设备地址”两个字段

OleDbDataAdapter adp = new OleDbDataAdapter(ReadSql, AccessConnect);//从数据库读出数据到数据库适配器
DataSet ds = new DataSet();
ds.Clear();
adp.Fill(ds, "GropName");
dgv_grop.Rows.Clear();
            int i;
            for(i = 0;i < ds.Tables[0].Rows.Count;i++)
            {
                dgv_grop.Rows.Add();
                dgv_grop.Rows[i].Cells["DeviceAddr"].Value = ds.Tables[0].Rows[i]["设备地址"].ToString();
                dgv_grop.Rows[i].Cells["DeviceName"].Value = ds.Tables[0].Rows[i]["设备名称"].ToString();
                dgv_grop.Rows[i].Cells["GroupName"].Value = ds.Tables[0].Rows[i]["组名"].ToString();
            }

ds.Dispose();
adp.Dispose();

AccessConnect.Dispose();
AccessConnect.Close();

//插入access数据库一条记录

string RoadPath = "Provider=Microsoft.Jet.OleDb.4.0;Data source=DataBase.mdb";
DataSet ds = new DataSet();
OleDbConnection AccessConnect = new OleDbConnection(RoadPath); //定义数据库连接对象
string ReadSql = "SELECT 组名 FROM GropName";
AccessConnect.Open();
OleDbDataAdapter adp = new OleDbDataAdapter(ReadSql, AccessConnect);//从数据库读出数据到数据库适配器
string Add_Grop = "insert into GropName (组名) values('"厂房"')"; //构造sql语句
OleDbCommand cmd = new OleDbCommand(Add_Grop, AccessConnect); //定义Command对象
//将账号密码存入数据库

cmd.ExecuteNonQuery(); //执行Command命令
AccessConnect.Close();

ds.Dispose();
adp.Dispose();
AccessConnect.Dispose();
AccessConnect.Close();

//更新一条access数据记录

string RoadPath = "Provider=Microsoft.Jet.OleDb.4.0;Data source=DataBase.mdb";
OleDbConnection AccessConnect = new OleDbConnection(RoadPath); //定义数据库连接对象
AccessConnect.Open();
string UpdateSql = "Update GropName SET 组名=办公室 where 设备名称='风机'";

OleDbCommand cmd = new OleDbCommand(UpdateSql, AccessConnect); //定义Command对象

cmd.ExecuteNonQuery(); //执行Command命令

cmd.Dispose();

AccessConnect.Dispose();

AccessConnect.Close();/**/

           

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页