VS实现Oracle的数据绑定.docx
《VS实现Oracle的数据绑定.docx》由会员分享,可在线阅读,更多相关《VS实现Oracle的数据绑定.docx(11页珍藏版)》请在冰点文库上搜索。
VS实现Oracle的数据绑定
实验十七利用ADO.NET实现Oracle的数据绑定
【一】实验目的
1.掌握窗体控件的数据绑定的方法;
2.掌握DataView对象的使用。
【二】实验内容
VB.NET的大部分控件都有数据绑定功能,例如Label、TextBox、DataGridView等控件。
当控件进行数据绑定操作后,该控件即会显示所查询的数据记录。
只有采用数据绑定,才能通过应用程序界面实施数据表中的数据操作。
窗体控件的数据绑定一般可以分为三种方式,即单一绑定、整体绑定和复合绑定。
一、单一绑定
所谓单一绑定是指将单一的数据元素绑定到控件的某个属性。
例如,将TextBox控件的Text属性与emp表中的empno列进行绑定。
单一绑定是利用控件的DataBindings集合属性实现的,其一般形式如下:
控件名称.DataBindings.Add("控件的属性名称",数据源,"数据成员")
例如,以下语句建立一个myds数据集(其中含有student表对应的DataTable对象),并将student.学号列与一个TextBox1控件的Text属性实现绑定。
DimmydsAsNewDataSet
…………
DimmybindingAsNewBinding("Text",myds,"student.学号")
TextBox1.DataBindings.Add(mybinding)
'或TextBox1.DataBindings.Add("Text",myds,"student.学号")
【例1】设计一个窗体,通过TextBox的单一绑定,浏览部门表dept中的第一个记录。
1.在项目中添加一个窗体Form1,如图17-1所示。
在窗体Form1上添加1个GroupBox控件、3个Label控件、3个TextBox控件,控件设置如表17-1所示。
图17-1窗体Form1界面设计
表17-1控件的属性表
控件类型
Name
Text
GroupBox
GroupBox1
部门记录
Label
Label1
部门号
Label
Label2
部门名
Label
Label3
地址
TextBox
TextBox1、2、3
2.输入如下代码。
3.运行项目。
结果如图17-2所示。
图17-2窗体Form1运行结果
二、整体绑定
单一绑定方式中,每个文本框与一个数据成员进行绑定,这种单一绑定方式不便于数据源的整体操作。
为此VB.NET提供了BindingSource类,它用于封装窗体的数据源,实现对数据源的整体导航操作,即整体绑定。
其常用的构造函数如下:
BindingSource()
BindingSource(dataSource,dataMember)
其中,dataSource指出BindingSource的数据源。
dataMember指出要绑定到的数据源中的特定列或列表名称。
【例2】设计一个窗体,通过TextBox的整体绑定,浏览部门表dept中的所有数据。
1.在项目中添加一个窗体Form2,如图17-3所示。
在窗体Form1上添加1个GroupBox控件、3个Label控件、3个TextBox控件、4个Button控件,控件设置如表17-2所示。
图17-3窗体Form2界面设计
表17-2控件的属性表
控件类型
Name
Text
GroupBox
GroupBox1
部门记录
Label
Label1
部门号
Label
Label2
部门名
Label
Label3
地址
TextBox
TextBox1、2、3
Button
Button1
首记录
Button
Button2
上一记录
Button
Button3
下一记录
Button
Button4
尾记录
2.输入如下代码。
3.运行项目。
结果如图17-4所示。
图17-4窗体Form2运行结果
三、复合绑定
所谓复合绑定是指控件和一个以上的数据元素进行绑定,通常是指把控件和数据集中的多条数据记录或者多个字段值、数组中的多个数组元素进行绑定。
ComboBox、ListBox和CheckedListBox等控件都支持复合数据绑定。
在实现复合绑定时,需要正确设置关键属性DataSource和DataMember(或DisplayMember)等,其基本语法格式如下:
控件对象名称.DataSource=数据源
控件对象名称.DisplayMember=数据成员
例如:
有1个ComboBox绑定学生emp表中所有的empno。
ComboBox1.DataSource=myds
ComboBox1.DisplayMember="emp.empno"
【例3】设计一个窗体,通过ComboBox的复合绑定,计算指定职位的员工平均工资。
1.在项目中添加一个窗体Form3,如图17-5所示。
在窗体Form3上添加1个Button控件、2个Label控件、1个ComboBox控件,控件设置如表17-3所示。
图17-5窗体Form3界面设计
表17-3控件的属性表
控件类型
Name
Text
Label
Label1
工种
ComboBox
ComboBox1
Button
Button1
求平均工资
Label
Label2
2.在该窗体上设计如下代码:
3.运行项目,选择“工种”,单击按钮“求平均工资”,label2控件显示该工种的所有员工平均工资。
如图17-6所示。
图17-6窗体Form3运行结果
四、DataView对象
DataView对象类似于数据库中的视图功能,提供DataTable列(Column)排序、过滤记录(Row)及记录的搜索,它的一个常见用法是为控件提供数据绑定。
DataView对象的构造函数如下:
DataView()
DataView(table)
DataView(table,RowFilter,Sort,RowState)
为给定的DataTable创建一个新的DataView对象,可以把DataTable的一个对象mydt传给DataView构造函数,例如:
DimmydvAsNewDataView(mydt)
在第一次创建DataView对象时,DataView默认为mydt中的所有行。
用属性可以在DataView中得到数据行的一个子集合,也可以给这些数据排序。
DataTable对象提供DefaultView属性返回默认的DataView对象。
例如:
DimmydvAsNewDataView()
mydv=myds.Tables("student").DefaultView
上述代码从myds数据集中取得student表的默认内容,再利用相关控件(如DataGridView)显示内容,指定数据来源为mydv。
DataView对象的常用属性如表17-4所示,其常用的方法如表17-5所示。
表17-4DataView的常用属性
属性
说明
AllowDelete
设置或获取一个值,该值指示是否允许删除。
AllowEdit
获取或设置一个值,该值指示是否允许编辑。
AllowNew
获取或设置一个值,该值指示是否可以使用AddNew方法添加新行。
ApplyDefaultSort
获取或设置一个值,该值指示是否使用默认排序。
Count
在应用RowFilter和RowStateFilter之后,获取DataView中记录的数量。
Item
从指定的表获取一行数据。
RowFilter
获取或设置用于筛选在DataView中查看哪些行的表达式。
RowStateFilter
获取或设置用于DataView中的行状态筛选器。
Sort
获取或设置DataView的一个或多个排序列以及排序顺序。
Table
获取或设置源DataTable。
表17-5DataView的常用方法
方法
说明
AddNew
将新行添加到DataView中。
Delete
删除指定索引位置的行。
Find
按指定的排序关键字值在DataView中查找行。
FindRows
返回DataRowView对象的数组,这些对象的列与指定的排序关键字值匹配。
ToTable
根据现有DataView中的行,创建并返回一个新的DataTable。
1.DataView对象的列排序设置
DataView取得一个表之后,利用Sort属性指定依据某些列(Column)排序,Sort属性允许复合键的排序,列之间使用逗号隔开即可。
排序的方式又分为升序(Asc)和降序(Desc),在列之后接“Asc”或“Desc”关键字即可。
2.DataView对象的过滤条件设置
获取数据的子集合可以用DataView类的RowFilter属性或RowStateFilter属性来实现。
RowFilter属性用于提供过滤表达式。
RowFilter表达式可以非常复杂,也可以包含涉及多个列中的数据和常数的算术计算与比较。
RowFilter属性的值是一个条件表达式。
同查询语句的模糊查询一样,该属性也有Like子句及%字符。
RowStateFilter属性定义了从DataTable中提取特定数据子集合的值。
【例4】设计一个窗体,通过DataView对象,在DataGridView控件中显示包含emp表中工资大于1800的未修改的记录。
1.在项目中添加一个窗体Form4,如图17-7所示。
在窗体Form1上添加1个DataGridView控件。
图17-7窗体Form4界面设计
2.在该窗体上设计如下代码:
3.运行项目,结果如图17-8所示。
图17-8窗体Form4运行结果
【例5】设计一个窗体,用于实现对student表中记录的修改操作。
1.设计一个窗体Form5,其设计界面如图17-9所示,有一个DataGridView控件DataGridView1和一个Button控件Button1。
图17-9窗体Form5界面设计
2.在该窗体上设计如下代码:
3.运行项目,结果如图17-10所示。
图17-10窗体Form5运行结果