实现Windows程序的数据绑定

1.DataSet对象

当应用程序需要查询数据时,可以使用DataReader对象读取数据,DataReader每次都只能读取一行数据到内存中,并且要一直与数据库保持连接.而且是只读只进型的读取方法.给程序想再次获得读取过的数据带来了麻烦.利用数据集,我们可以在断开与数据库连接的情况下操作数据,可以操作来自多个相同或不同数据源的数据

1.1认识DataSet对象

我们可以把数据集简单的理解为一个临时的数据库,他把应用程序需要的数据临时保存在内存中,由于这些数据都缓存在本地机器上,就不需要一直保存和数据库的连接.当应用程序需要数据时,就直接从内存中的数据集读取数据,也可以对数据集中的数据进行修改,然后将修改后的数据一起提交到数据库.

数据集不直接和数据库打交道,它和数据库之间的相互作用都是通过.Net数据提供程序来完成的,所以数据集是独立于任何数据库的.

1.2创建DataSet 

DateSet位于System.Data命名空间中,创建DataSet语法如下

[语法]:

DataSet  数据集对象 = new DataSet("数据集的名称字符串");

方法中的参数是数据集的名称,可以有,也可以没有,如果没有写参数,创建的数据集的名称默认为NewDataSet.

例如:

DataSet myDataSet = new DataSet();

DataSet myDataSet = new DataSet("MySchool");

2 DataAdapter对象

数据适配器数据库和DataSet对象连接的桥梁

2.1认识DataAdapter对象

.NET 数据提供程序及DataAdapter类
.NET 数据提供程序连接类
SQL  数据提供程序
System.Data.SqlClient命名空间中
SqlDataAdapter
OLE DB  数据提供程序
System.Data.OleDb命名空间中
OleDbDataAdapter
ODBC 数据提供程序
System.Data.Odbc命名空间中
OdbcDataAdapter
Oracle  数据提供程序
System.Data.OracleClient命名空间中
OracleDataAdapter

DataAdapter对象的主要属性和方法

属性:

SelectCommand  从数据库检索数据的Command对象

方法

Fill()  向DataSet中的表填充数据

Update  将DataSet中的数据提交到数据库

2.2填充数据集

使用DataAdapter填充数据集需要四个步骤

(1)创建数据库连接对象

(2)创建从数据库查询数据用的SQL语句

(3)利用上面创建的SQL语句和Connection对象创建DataAdapter对象

语法:

SqlDataAdapter 对象名 = new SqlDataAdapter(查询用的SQL语句,数据库连接);

或者

SqlDataAdqpter adapter = new SqlDataAdapter();

SqlCommand command  = new SqlCommand(查询用的SQL语句,数据库连接);

adapter.SelectCommand = command;

(4)调用DataAdapter对象的Fill方法填充数据集

语法:

DataAdapter对象.Fill(数据集对象,"数据表名称字符串");

Fill()方法接收一个数据表名称的字符串参数.如果数据集中原来没有这个数据表,调用Fill()方法后就会创建一个数据表.如果数据集中原来有这个数据表,就会把现在查出的结果继续添加到数据表中.

经验:

创建一个DataAdapter对象,都与Connection.Command对象有关,并且要编写SQL语句

在不同的代码段中,Connection对象出现的位置可能不同

3.数据绑定

数据绑定是为了在控件上显示数据库中存储的数据,而将应用程序的控件与数据库的任何列或行进行绑定的过程.VS使用DataSource属性为我们提供了静态和动态的数据绑定,教好的解决了这个问题,降低了代码的复杂度

3.1ComboBox数据绑定

通过组合框实现绑定数据时,常使用的属性为:

DataSource  获取或设置数据源

DisplayMember  获取或设置要为此ListContiol显示的属性

ValueMember 获取或设置一个属性,该属性将用做ListControl中项的实际值.

4.DataGridView控件

4.1认识DataGridView控件

数据网格视图控件是一个很强大的控件,在DataGridView中还可以直接修改和删除数据.

DataGridView控件能够以表格的形式显示数据,可以设置为只读,也可以允许编辑数据.要想指定DataGridView显示哪个表的数据,只需要设置他的DataSource属性,使用一行代码就能实现

主要属性:

Columns  包含列的集合

DataSource DataView的数据源

ReadOnly 是否可以编辑单元格

各列的主要属性:

DataPropertyName  绑定数据列的名称

HeaderText 列标题文本

Visible 制定列是否可见

Frozen 指定水平滚动DataGridView时列是否移动

ReadOnly 指定单元格是否为只读

4.2使用DataGridView控件显示数据

(1)添加控件

(2)设置DataGridView的属性和各列的属性

(3)筛选信息(查询用)

(4)绑定DataGridView的数据源

4.3保存对数据集的修改

(1)使用SqlCommandBuilder对象生成更新用的相关命令

[语法]:

sqlCommandBuilder  Builder = new  SqlCommandBuilder(已创建的DataAdaptr对象);

(2)调用DataAdapter对象的Update方法

DataAdaptre对象.Update(数据集对象,"数据表名称字符串");

经验:

SqlCommandBuilder只操作单个表.也就是说,创建DataAdaptr对象时.使用的SQL语句只能从一个表里面查数据,不能进行联合查询.

常见错误:

(1)不使用sqlCommandBuilder直接调用Updata()方法

(2)利用DataGridView显示数据集中表时,没有为他的列设置DataPropertName属性

原文地址:https://www.cnblogs.com/kami-char/p/7811050.html