BindingSource控件介绍

来源:互联网 发布:魔兽月卡 知乎 编辑:程序博客网 时间:2024/06/05 14:49

BindingSource控件介绍

BindingSource控件是.NET Framework 2.0提供的新控件之一。BindingSource控件与数据源建立连接,然后将窗体中的控件与BindingSource控件建立绑定关系来实现数据绑定,简化数据绑定的过程。
BindingSource控件即是一个连接后台数据库的渠道,同时又是一个数据源,因为BindingSource控件即 支持向后台数据库发送命令来检索数据,又支持直接通过BindingSource控件对数据进行访问、排序、筛选和更新操作。BindingSource控件能够自动管理许多绑定问题。
BindingSource控件没有运行时界面,无法在用户界面上看到该控件。
BindingSource控件通过Current属性访问当前记录,通过List属性访问整个数据表。下表列出了BindingSource控件的主要属性:属性说明AllowEdit指示是否可以编辑BindingSource控件中的记录。AllowNew指示是否可以使用 AddNew 方法向BindingSource控件添加记录AllowRemove

 指示是否可从BindingSource控件中删除记录。

Count 获取BindingSource控件中的记录数。CurrencyManager获取与BindingSource控件关联的当前记录管理器。Current 获取BindingSource控件中的当前记录DataMember 获取或设置连接器当前绑定到的数据源中的特定数据列表或数据库表。DataSource获取或设置连接器绑定到的数据源。Filter获取或设置用于筛选的表达式。Item获取或设置指定索引的记录。Sort

获取或设置用于排序的列名来指定排序。

通过Current属性及RemoveCurrent、EndEdit、CancelEdit、Add和AddNew方法可实现对当前记录的编辑操作。

下表列出了BindingSource控件的主要方法方法说明Add 将现有项添加到内部列表中CancelEdit 从列表中移除所有元素EndEdit

 将挂起的更改应用于基础数据源。

Find  在数据源中查找指定的项。MoveFirst 移至列表中的第一项。MoveLast 移至列表中的最后一项。MoveNext 移至列表中的下一项。MovePrevious 移至列表中的上一项。RemoveCurrent 从列表中移除当前项。如果你是通过从[数据源]拖拽表到Form上生成的DataGridView及数据,那就用VS05自动生成的 BindingNavigator进行增、删、改。通常你甚至连一行代码都不用写。 另外,从vs05开始强烈推荐使用BindingSource作为控件和数据之间的中间层。就是说控件绑定到 BindingSource, BindingSource再绑定到数据对象(date item)或对象列表 (data item list)。 这样做有 许多好处。 BindingSource.EndEdit();会把更新提交到内存中的对象或对象列表(如DataSet)。 BindingSource.Update方法会把更新提交到数据库。以Vs2005操作Access2003数据库为例(不用向导)建一个Access   2003文件 db1.mdb   建一个表(Person) :表结构如下,输入一些内容UID自动编号主键name文字 age数字 sex文字 Vs2005建一个winform,把一个DataGridView、Button拖到Form上。 运行一下,再把db1.mdb复制到Debug目录下。 给类增加三个成员:
private DataTable dt;
private BindingSource bs;
private OleDbDataAdapter da;
双击Form1,在Form1_Load里 :双击button1,在button1_Click里把我举的例子里
private BindingSource bs;//去掉
bs = new BindingSource();
bs.DataSource = dt;
dataGridView1.DataSource = bs; //也可以不用BindingSource,直接DataSource=dt;
这三行改成
dataGrid1.DataSource = dt;
---------
'永远'记住一点:在使用DataAdapter的应用里,你根本无需手动打开连接和关闭连接。
也就是在你的代码中根本不应看到Conn.Open()、Conn.Close()之类的东西。
因为DataAdapter会在自动为你打开和关闭连接。