第15章 数据绑定控件
VB中数据控件绑定

VB中数据控件绑定什么是绑定控件?绑定控件指的是一个窗体上的”对象“,由于创建它的那个控件设置了显示数据库信息方面的功能,通过设置对象的datasource(数据源)属性和datafield(数据字段)属性,使这个对象“绑定”于一数据库。
数据对象DATA的几个重要属性:一,connect属性:数据库类型,缺省为ACCESS。
二,databasename属性:选定一个路径下数据库文件,可在属性窗口设置,代码中例如:Data1.DatabaseName = "d:\vb6\Nwind.mdb"三,recordsource属性:选定数据库中的一个表,如果不在属性窗口设置,代码中写也可以,例如:Data1.RecordSource = "个体户管理"与DATA对象绑定的对象的相关属性:四。
绑定对象的datasource属性:在属性窗口中设置,确定“绑定”到哪个数据对象,如设置为Data1五。
将绑定对象的datafield属性设置为该表中的某个字段名,如:Text1.DataField= "姓名"以上是几个最基本的属性。
DATA对象的readonly属性:选择是否以只读方式打开数据库。
Data对象的Exclusive属性:是否以独占方式打开数据库。
Data对象的UpdateRecord方法:在不触发Validate事件的情况下保存绑定控件中的值到数据库。
Data对象的UpdateControls方法:把数据库中的记录值写到绑定控件中。
即忽略当前绑定控件的值,相当于取消更改。
Validate事件:当数据被增删,修改,添加等操作前引发。
Reposition事件:当记录指针移动到新位置时引发。
ADO是以后发展的趋势,将替代DAO和RDO,ADO可访问本地数据库,也可访问远程数据库。
基于ADO对象的数据控件:Adodc(使用方法和DATA差不多,但DATA是DAO的),与Adodc绑定的控件:DataGrid控件显示记录集并可修改;DataList控件;DataCombo控件,DataRepeater控件可同时显示几个绑定控件数据。
第15章 ADO与数据绑定控件

RecordSet对象的主要方法(续)
• 2.AddNew方法
• 用于在结果集中添加一个新记录。
• 3.Update方法
• 将新记录缓冲区中的记录或者对当前记录的修改真正 写到数据库中。
• 4.Delete方法
• 删除结果集中当前行记录指针所指的记录,并且这个 删除是直接对数据库数据操作的,删除后的数据不可 恢复。
ADO数据控件名.Refresh
ADO数据控件的主要事件
• EndOfRecordset事件
当在结果集中移动记录指针时,当记录指针超出了结果 集的最后一条记录时,触发此事件。
• Error事件
只有在没有执行任何VB代码而发生了一个数据访问错误 时,才会触发此事件。
• WillChangeField和FieldChangeComplete事件
Fields对象的主要属性
• :字段名称。 • Fields.Value:字段的值。 • Fields.OrdinalPosition:字段在Fields集合中 的顺序。 • Fields.Type:字段的数据类型。 • Fields.Size:字段的最大字节数。 • Fields.SourceTable:字段来自的表 • Fields.SourceField:字段来自的表中的列
用datagrid事件确认更新事件触发时刻beforecoledit移入新单元后但在单元中敲入第一个字符之前coledit在单元中敲入第一字符后aftercoledit紧随aftercolupdate事件之后beforecolupdate改变单元值或移入一个新单元之后但在datagrid缓冲区内容改变之前aftercolupdate在为更新的列修改缓冲区之后同aftercoleditbeforedelete在选中一行并按delete键之后但在列从recordset中删除之前afterdelete从recordset删除一行之后beforeinsert在临时加入的记录组成的列中敲入至少一个字符之后但在行被加入到recordset之前afterinsert在行加入到recordset之后beforeupdate在修改任何列的值或移动一个新记录之后但在recordset更新之前afterupdate在更新recordset的行之后privatesubdtgstudentheadclickbyvalcolindexadodc1recordsetsortdescenddtgstudentrefreshendsubdatagrid排序示例datagrid隐藏列示例privatesubcmdsomecolumnsclick?隐藏ssex和sage列dtgstudentcolumns2
数据控件和数据绑定控件

1.2 Recordset对象的属性与方法
l BOF、EOF属性:如果当前记录位于Recordset对象的最后一个记录之 后,则EOF值为True,否则为False 。如果当前记录位于Recordset对象的 第一个记录之前,则BOF值为True,否则为False 。 使用BOF和EOF属性可确定Recordset对象是否包含记录,也可以判断 Recordset对象所指定的记录集的边界。 l RecordCount属性:指示Recordset对象中记录的总数,返回类型为长 整形。 l NoMatch属性:指示当使用Seek方法或Find方法进行查找时,是否找 到匹配的记录。当找到指定的记录时,返回值为True,否则返回值为 False。 l Fields属性:Recordset对象的Fields属性是一个集合,该集合包含 Recordset 对 象 的 所 有 Field ( 字 段 ) 对 象 。 每 个 Field 对 象 对 应 于 Recordset中的一列。使用Field对象的Value属性可设置或返回当前记录 的数据。 l Index属性:设置或返回表类型记录集中的当前索引名称,该索引名 称必须是已经定义的一个索引。设置或返回的值为字符串类型。
返回章首
1.1 数据控件
2、方法 l UpdateControls方法:将被绑定控件的内容恢复为其原始值,等效于 用户更改了数据之后决定取消更改。 l UpdateRecord方法:将被绑定控件的当前值保存到数据库中。 3、事件 l Error事件:通常是在代码运行中出现错误时触发该事件,如果未对 Error事件编写事件过程,Visual Basic将显示与该错误相关的信息。注意: 出现在 Form_Load 事件之前的错误是不可捕获的,也不会触发 Error 事 件。 l Reposition事件:当一条记录成为当前记录之后触发。Recordset对 象中的第一条记录成为当前记录,这时会触发Reposition事件,无论何 时只要用户单击Data控件上的某个按钮,或进行记录间的移动,或使用 了某个Move方法(如MoveNext)、Find方法(如FindFist)或任何其他 改变当前记录的属性或方法,均会触发Reposition事件。 l Validate事件:当一条记录成为当前记录之前触发。使用Delete、 Unload或Close操作之前会触发该事件。
第15章 ADO与数据绑定控件

DataGrid控件
• 正式名称是:Microsoft DataGrid Control 6(OLE DB), • 以表格的形式显示结果集中的全部数据, • 并允许用户在此控件中浏览、添加、删除 和修改记录。 • 需手工添加到工具箱中。
DataGrid控件的特殊属性
用DataGrid事件确认更新
15.3 ADO对象
• 由一组相互独立的对象组成,对象模型中的 每个对象都具有各自的属性、方法和事件, • 通过设置和使用这些对象的属性、方法和事 件可以实现对数据库的全部操作。
ADO对象模型
Connection Errors Error
Command
Recordset
Parameters
Fields
Connection对象的主要属性
• ConnectionString 用于指定连接到的数据源名称,使用方法及含义 同ADO数据控件。 • ConnectionTimeout 执行Open方法之后等待建立连接的秒数,默认 为15秒。0表示无限期等待。 • State 表示Connection对象是打开还是关闭的常量。
事件 BeforeColEdit 触发时刻 移入新单元后,但在单元中敲入第一个字符之前
ColEdit
AfterColEdit BeforeColUpdate AfterColUpdate BeforeDelete AfterDelete BeforeInsert
在单元中敲入第一字符后
紧随AfterColUpdate事件之后 改变单元值或移入一个新单元之后,但在DataGrid缓冲区内容改变 之前 在为更新的列修改缓冲区之后(同AfterColEdit) 在选中一行并按Delete键之后,但在列从Recordset中删除之前 从Recordset删除一行之后 在临时加入的记录组成的列中敲入至少一个字符之后,但在行被加 入到Recordset之前
什么是绑定控件

什么是绑定控件什么是绑定控件?绑定控件指的是一个窗体上的”对象“,由于创建它的那个控件设置了显示数据库信息方面的功能,通过设置对象的datasource(数据源)属性和datafield(数据字段)属性,使这个对象“绑定”于一数据库。
数据对象DATA的几个重要属性:一,connect属性:数据库类型,缺省为ACCESS。
二,databasename属性:选定一个路径下数据库文件,可在属性窗口设置,代码中例如:Data1.DatabaseName = "d:\vb6\Nwind.mdb"三,recordsource属性:选定数据库中的一个表,如果不在属性窗口设置,代码中写也可以,例如:Data1.RecordSource = "个体户管理"与DATA对象绑定的对象的相关属性:四。
绑定对象的datasource属性:在属性窗口中设置,确定“绑定”到哪个数据对象,如设置为Data1五。
将绑定对象的datafield属性设置为该表中的某个字段名,如:Text1.DataField = "姓名"以上是几个最基本的属性。
DATA对象的readonly属性:选择是否以只读方式打开数据库。
Data对象的Exclusive属性:是否以独占方式打开数据库。
Data对象的UpdateRecord方法:在不触发Validate事件的情况下保存绑定控件中的值到数据库。
Data对象的UpdateControls方法:把数据库中的记录值写到绑定控件中。
即忽略当前绑定控件的值,相当于取消更改。
Validate事件:当数据被增删,修改,添加等操作前引发。
Reposition事件:当记录指针移动到新位置时引发。
ADO是以后发展的趋势,将替代DAO和RDO,ADO可访问本地数据库,也可访问远程数据库。
基于ADO对象的数据控件:Adodc(使用方法和DATA差不多,但DATA是DAO的),与Adodc 绑定的控件:DataGrid控件显示记录集并可修改;DataList控件;DataCombo控件,DataRepeater 控件可同时显示几个绑定控件数据。
数据绑定控件(一)

控件
数据
检索到的 数据
数据绑定是将数据链接到显 示该数据的控件的过程
欢迎 “ ”
3
数据绑定简介 2-2
用于绑定控件的表达式置于 <%#......%> 标记之间
4
代码视图
简单属性绑定
//定义成员变量
protected static int vote1 = 0;
protected static int vote2 = 0;
<asp:Label id="lblVreottuer1n""T0e%xt"=; "<%#GetVotePercent(vote1)%>"
vote1 += 1;
<asp:Imagtehiids=.D"imatgaVBoitned1(")r;unat="server" Height="12px" Width="<%#4*vote1%>"
I}mageUrl="red.bmp"></asp:Image>
<parsivpa:Lteabveol iidd=b"tlbnlVVottee12"_TCelxict=k"(<o%b#jevcottes1e%n>d"erru, nSayt=s"tesemrv.Eerv">e<n/taAsrpg:Lsaeb)el>
<{asp:Image id="imgVote2" runat="server" Height="12px" Width="<%#4*vote2%>"
数据绑定控件—GridView控件

10 显示空数据
• 当没有结果从数据源返回的时候,GridView的两 个属性可以用来显示内容:EmptyDataText和 EmptyDataTemplate。
• 示例1:页面包含一个电影搜索的表单,若没有电影 名称和用户输入的搜索字符串相匹配,就显示 EmptyDataText属性值。
• ShowEmptyDataText.aspx
• 示例:在标准的编辑按钮中使用图标 • ShowCommandField.aspx
• 注:在使用CommandField的时候,不需要启用 AutoGenerateEditButton或AutoGenerateDeleteButton属性 ,因为可以直接用CommandField来创建标准的编辑按钮。
11 格式化GridView控件
• GridView控件有丰富的格式化属性,通过这些属 性可以修改GridView的外观。但是建议不要使用 这些属性来修改外观。最好使用CSS来格式化 GridView控件外观。
• AlternationRowStyle—可以设置交替行的外观 • FooterStyle—可以设置脚注行的外观 • HeaderStyle—可以设置标题行的外观 • PagerStyle—可以设置页导航的外观 • RowStyle—可以设置交替行的外观 • SelectedRowStyle—可以设置选中行的外观
• 示例:使用CSS设置GridView控件的格式 • FormatGridView.aspx
• 当用户单击【详细信息】按钮时,将引发 SelectedIndexChanging事件,在该事件中通过 NewSelectedIndex属性获取当前行的索引值。 GridView1.DataKeys[e.NewSelectedIndex]
数据绑定控件

版本。它每次从相关数据源中选择一条记录显示,选择性地提供分页按钮,
用于在记录之间移动。与DetailsView控件不同的是,FormView不使用数 据控件字段,而是允许用户通过模板定义每个项目的显示。FormView支 持其数据源提供的任何基本操作。
•
FormView控件是作为通常使用的更新和插入结构而设计的,
选的;但是,必须为该控件的配置模式创建模板。例如,
要插入记录的话,必须定义InsertItemTemplate。
•
FormView 是 新 的 数 据 绑 定 控 件 , 使 用起 来 像是
DetailsView的模板化版本。它每次从相关数据源中选择
一条记录显示,选择性地提供分页按钮,用于在记录之
• DataList控件:
•
DataList控件可以自定义数据库记录的呈现格式。显示数
据的格式在创建的模板中定义。可以为项、交替项、选定项和
编辑项创建模板。标头、脚注和分隔符模板也用于自定义
DataList的整体外观。通过在模板中包括Button控件,可将列表
项连接到代码,这些代码使用户得以在显示、选择和编辑模式
DetailsView控件和FormView控件之间的主要差异在于DetailsView具有内
置 的 表 格 呈 现 方 式 , 而 FormView 需 要 用 户 定 义 的 模 板 用 于 呈 现 。
FormView和DetailsView对象模型在其它方面非常类似。
•
FormView是新的数据绑定控件,使用起来像是DetailsView的模板化
•
(2)对于有DataSource属性的控件,可直接把数据源的
数据指定给控件DataSource属性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
15.2.2 ListView控件的分组布局
ListView控件提供了一个分组布局的功能,该功能会将 ItemTemplate中的项以水平平铺方向进行布局.在平铺表布局中, 项在行中沿水平方向重复出现.项重复出现的次数由ListView控 件的GroupItemCount 属性指定.GridView控件中有一个 GroupTemplate元素,使用该元素可以创建分组布局的功能,下面 将使用该功能为前面示例的Northwind数据库的Products表创建一 个平铺的特性.
15.2.3 使用DataPager分页
ListView本身没有提供分页功能,可以借助于DataPage控件.DataPage控 件是一个专门用于分页的服务器控件.如果DataPager位于实现了 IPageableItemContainer 接口的控件中时,将自动完成分页功能,目前 只有ListView控件实现了此接口. 下面演示如何为Products表实现分页功能.从工具箱中拖一个DataPager 控件到页面任何位置,指定其PageSize属性为3,表示每页显示3条记录, 单击智能提示标签,在弹出的DataPager任务窗口中提供了方法定义 DataPager显示的样式,选择编辑页导航字段可以让开发人员指定导航的 显示属性,如图所示.
GridView控件的列类型
说明 列字段类型 BoundField ButtonField CheckBoxField CommandField HyperLinkField ImageField TemplateField 显示数据源中某个字段的值.GridView控件的默认列类型. 为GridView控件中的每个项显示一个命令按钮.这使您可以创建一列自定义按钮控件,如"添加"按钮或"移除" 按钮. 为GridView控件中的每一项显示一个复选框.此列字段类型通常用于显示具有布尔值的字段. 显示用来执行选择,编辑或删除操作的预定义命令按钮. 将数据源中某个字段的值显示为超链接.此列字段类型使您可以将另一个字段绑定到超链接的URL. 为 GridView 控件中的每一项显示一个图像. 根据指定的模板为GridView控件中的每一项显示用户定义的内容.此列字段类型使您可以创建自定义的列字段.
15.1.5 使用GridView控件创建主从表
在本节中,将为GridViewShow.aspx添加主从功能,希望用户能选 中某个产品后,在另外一个GridView控件中显示出该产品的销售 详细信息.在页面上放置一个GridView控件,放置一个 SqlDataSource控件,使其打开Order Details数据表,设置一个 控件参数绑定到产品GridView1的SelectedValue属性,如图所示.
15.1 GridView控件
GridView是一个显示表格式数据的控件,这个控件也是服 务器控件中功能最强大,最实用的一个控件.GridView显示一个 二维表格式数据,每列表示一个字段,每行表示一条记录. GridView 控件支持下面的功能: 绑定至数据源控件,如SqlDataSource,ObjectDataSource或者是 LinqDataSource控件. 内置的排序功能. 内置了更新和删除记录的功能. 内置数据分页功能. 内置行选择功能. 提供以编程方式访问GridView对象模型以动态设置属性,处理事 件等. 可以指定多个键字段. 用于超链接列的多个数据字段. 可通过主题和样式进行自定义的外观.
15.1.8 为GridView控件添加统计信息
本示例将使用RowDataBound事件为GridView添加汇总信息, 本示例希望用户在选中某个产品后,除了显示与该产品相 关的订单信息外,还显示这些订单的汇总信息.
15.1.9 实现分页,排序效果
当在GridView控件的任务面板中选择"启用排序"项后, GridView控件的AllowSorting属性被设为True,如果设置 了SortExpression属性的列头将输出为一个链接.当用户 点击该链接时,将会自动进行排序.GridView自动记住每 次点击是升序和降序,多次点击会在升序和降序之间进行 切换.开发人员可以通过处理RowDataBound事件来自定义 排序的外观,也可以通过调用GridView的Sort方法来手动 进行排序. 还可以在PagerTempate模板中进行分页设计,另外, GridView提供了PageStyle属性,可以设置分页的样式,如 果要指定每页显示的记录数,可以设置GridView控件的 PageSize属性. GridView控件功能强大,很多功能在本章中不能一一涉及, 希望读者能够继续参考一些其他的资料.全方位的学好该 控件的用法能显著提高日后的应用程序开发.
15.1.3 使用模板列
一些情况下使用标准的列并不能满足显示的要求,比如希望为供应商和产 品分类显示名称,希望将产品名称和单位数量显示在一个字段中.此时可 以考虑使用模板列. 模板列让开发人员有机会去处理列显示的细节,解决预定义的列不能提供 的功能.GridView控件使用TemplateField来创建自定义的模板列,当用 户在GridView控件中使用模板列时,需要根据不同的GridView位置来编辑 不同的模板列,比如如果想自定义GridView控件的表头,可以编辑 HeaderTemplate模板,对于每一行可以编辑ItemTempate模板.
15.1.1 使用GridView控件
GridView呈现表格式的数据,默认情况下会将数据源中的数据输出一个 HTML表格,每条记录输出一个表格式,下面新建一个页面来演示如何使用 GridView控件. (1)新建一个名为GridViewDemo的网站,在该站点中添加一个 GridViewShow.aspx的页面,接下来添加一个SqlDataSource控件,指定其 绑定到Northwind数据库的Products数据表,声明代码如下所示: <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" SelectCommand="SELECT * FROM [Products]"></asp:SqlDataSource> (2)从工具箱的数据栏中拉一个GridView控件到设计视图,VS2008将生 成如下所示的声明代码: <asp:GridView ID="GridView1" runat="server"></asp:GridView>
GridView控件的模板列 说明 模板 AlternatingItemTemplate EditItemTemplate FooterTemplate HeaderTemplate InsertItemTemplate ItemTemplate 为交替项指定要显示的内容. 为处于编辑模式中的项指定要显示的内容. 为对象的脚注部分指定要显示的内容. 为标头部分指定要显示的内容. 为处于插入模式中的项指定要显示的内容.只有DetailsView控件支持该模板. 为TemplateField对象中的项指定要显示的内容.
第15章 数据绑定控件
在VS2008工具箱的数据栏中,提供了几个开发 应用程序的重量级的数据绑定控件.这几 个控件的功能强大,使用灵活,在应用系统开发 中的使用频率也是相当高.本章将详细的介绍 GridView,DetailsView,ListView和FormView这 几个控件,灵活掌握对这几个控件的使用,然后 综合本书以前的知识,相信读者将能够进行基本 的数据库应用程序的开发.
15.1.4 GridView控件的选择功能
GridView控件允许用户选择某一条记录,在GridViewShow.aspx的 GridView中,通过使用GridView的任务面板启用了选择功能, GridView控件会增加一个选择命令按钮.当在GridView控件中选 择一行时,可以通过GridView控件的SelectedRowStyle设置选中 的效果.可以使用属性面板也可以直接在代码中进行设置,下面 的代码将选择行的颜色设置为Aqua,字体设为粗体. <SelectedRowStyle BackColor="Aqua" FontBold="True" /> 运行时,只要单击选择按钮,则GridView会高亮显示选中的行, 如图所示.
15.2.1 ListView控件简介
ListView控件是一个相当灵活的数据绑定控件,该控件不具有默认的格式 呈现,所有的格式需要开发人员自由的设计来实现.由于完全依赖模板设 计,ListView控件提供了很多的模板以供完成设计.在ListView中,有两 个控件是必须的,一个是LayoutTemplate,一个是ItemTemplate.表列出 了ListView控件的11个模板及其详细的描述.
15.1.6 GridView控件事件
GridView控件提供了很多的事件,开发人员可以使用这些 事件定制GridView控件的外观和形为.为了便于理解 GridView控件的事件,这里将GridView控件中所有这些事 件发为三大类,分别控件呈现事件,编辑记录事件和选择, 排序分页事件. 控件呈现事件在GridView显示其数据行时触发,可以分为 如下几种: DataBinding:GridView控件绑定到数据源时立即触发. DataBound:GridView控件己经绑定到数据源后触发. RowCreated:当GridView中的行被创建后触发该事件. RowDataBound:当GridView中的每行绑定到数据后触发.
15.1.7 编程格式化特定行列值
在应用程序开发过程中,经常需要为特定的字段值显示不同的格 式,比如仓库系统的的库存低于安全库存,可能需要以红字高亮 显示这些库存记录,或者是产品成本价钱过高,决策层希望一目 了然的看到这些信息.此时需要按条件来格式化GridView控件的 显示,在GridView中,有两个事件可以完成这一需求: RowCreated事件和RowDataBound事件. 必须明白这两个控件的区别,RowCreated事件触发于GridViewRow 被创建之后,在数据绑定完成之前,而RowDataBound事件在 GridView绑定到数据源后触发.如果行没有被绑定到数据源将不 会触发RowDataBound事件,而RowCreated事件在任何时候,只要 具有PostBack时都会触发. RowCreated可以用来向行添加自定义内容,自定义格式. RowDataBound事件在数据绑定后,控件呈现之前触发,可以在该 事件中定义事件修改绑定到该行的数据的值,比如为布尔字段显 示特定ager控件