ADO.NET数据库访问技术案例教程 第6章 浏览数据源中的数据.ppt
《ADO.NET数据库访问技术案例教程 第6章 浏览数据源中的数据.ppt》由会员分享,可在线阅读,更多相关《ADO.NET数据库访问技术案例教程 第6章 浏览数据源中的数据.ppt(162页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第第 6 6 章章浏览数据源中的数据浏览数据源中的数据 使用数据读取器浏览数据源中的数据使用数据读取器浏览数据源中的数据6.1使用数据适配器浏览单个数据表中的数据使用数据适配器浏览单个数据表中的数据 6.2使用数据适配器浏览多个数据表中的数据使用数据适配器浏览多个数据表中的数据6.3 查查 找找 记记 录录6.5数据视图(数据视图(DataViewDataView)的应用)的应用6.4 浏览数据源中的数据浏览数据源中的数据 数据库应用系统中经常以各种方式浏数据库应用系统中经常以各种方式浏览数据源中的数据,览数据源中的数据,ADO.NETADO.NET也提供了多种也提供了多种浏览数据源中的数据
2、的方法。浏览数据源中的数据的方法。【知知识识技技能能目目标标】(1)掌握)掌握SqlCommand对象的对象的ExecuteReader方法。方法。(2)掌握数据读取器)掌握数据读取器SqlDataReader读取数据的方法。读取数据的方法。(3)掌握设置数据命令参数的方法。)掌握设置数据命令参数的方法。(4)掌握浏览多个数据表中的数据)掌握浏览多个数据表中的数据的方法。的方法。(5)掌握使用)掌握使用DataView对象排序数对象排序数据和筛选数据的方法。据和筛选数据的方法。(6)掌握使用)掌握使用Find方法和方法和Select方法方法搜索数据的方法。搜索数据的方法。【本本章章学学习习导导
3、航航】本章探讨浏览数据源中的数据的方法,本章探讨浏览数据源中的数据的方法,主要涉及主要涉及CommandCommand对象、对象、DataReaderDataReader对象和对象和DataAdapterDataAdapter对象,由于涉及的内容较多,对象,由于涉及的内容较多,建议分为三个教学单元,第一个教学单元建议分为三个教学单元,第一个教学单元为为6.16.1和和6.26.2,第二个教学单元为,第二个教学单元为6.36.3和和6.46.4,第三个教学教学为,第三个教学教学为6.56.5。6.16.1使用数据读取器浏览数据源使用数据读取器浏览数据源中的数据中的数据 如果要创建如果要创建Sql
4、DataReaderSqlDataReader对象或者对象或者OleDbDataReaderOleDbDataReader对象,则必须调用对象,则必须调用CommandCommand对象的对象的ExecuteReaderExecuteReader方法,而不方法,而不能直接使用构造函数。能直接使用构造函数。6.1.1创建创建DataReader对象对象创建创建DataReader对象与创建对象与创建DataAdapter对象不同,不能使用对象不同,不能使用New方法方法来创建,而只能通过来创建,而只能通过Command对象的对象的ExecuteReader方法创建。方法创建。例如使用例如使用Co
5、mm命令对象创建命令对象创建SqlDataReader对象的代码如下。对象的代码如下。Dimreader1AsSqlDataReaderreader1=comm.ExecuteReader()6.1.2DataReader类的属性类的属性DataReader类的属性如表类的属性如表6-1所示。所示。表表6-16-1DataReaderDataReader类的属性类的属性属属 性性 名名 称称属属 性性 说说 明明FieldCountFieldCount获获取当前行中的列数,默取当前行中的列数,默认值为认值为-1-1。如果所。如果所执执行的行的查查询询并未返回任何并未返回任何记录记录,则该则该属
6、性会返回属性会返回0 0HasRowsHasRows用于判断用于判断SqlDataReaderSqlDataReader对对象是否包含象是否包含记录记录IsClosedIsClosed获获取一个取一个值值,该值该值指示数据指示数据读读取器是否关取器是否关闭闭。如果。如果DataReaderDataReader已关已关闭闭,则则返回返回TrueTrue;否;否则则返回返回FalseFalseItemItem获获取以本机格式取得列的取以本机格式取得列的值值RecordsAffeRecordsAffectedcted获获取取执执行行SQLSQL语语句所插入、修改或句所插入、修改或删删除的行数。如果除
7、的行数。如果没有任何行受到影响或没有任何行受到影响或读读取失取失败败,则则返回返回0 0 当当SqlDataReader关闭后,只能访问关闭后,只能访问IsClosed和和RecordsAffected属性。属性。6.1.3DataReader类的方法类的方法DataReader类的方法如表类的方法如表6-2所示。所示。方方 法法 名名 称称方方 法法 说说 明明CloseClose关关闭闭SqlDataReaderSqlDataReader对对象象GetNameGetName获获取指定列的名称取指定列的名称GetOrdinalGetOrdinal在在给给定列名称的情况下定列名称的情况下获获取
8、从零开始的序列号取从零开始的序列号GetSqlValuesGetSqlValues获获取当前行中的所有属性列取当前行中的所有属性列GetStringGetString获获取指定列的字符串形式的取指定列的字符串形式的值值GetTypeGetType获获取当前取当前实实例的数据例的数据类类型型GetDataTypeNameGetDataTypeName将字段序号将字段序号传递给传递给GetDataTypeNameGetDataTypeName方法,可方法,可获获得字段的原始数得字段的原始数据据类类型名称型名称ReadReadDataReaderDataReader的默的默认认位置是在第一条位置是在
9、第一条记录记录之前,要之前,要调调用用ReadRead方法方法前前进进到下一条到下一条记录记录才能开始才能开始访问记录访问记录。如果。如果ReadRead方法能方法能够顺够顺利利地前移到下一条地前移到下一条记录记录,它会返回,它会返回TrueTrue;如果已;如果已经经没有下一条没有下一条记记录录,它会返回,它会返回FalseFalse。它可以自。它可以自动导动导航到数据流中的第一条航到数据流中的第一条记录记录之前的位置,且能自之前的位置,且能自动动向前移向前移动动一条一条记录记录位置位置表表6-26-2DataReaderDataReader类的方法类的方法 GetFieldTypeGetF
10、ieldType将字段序号将字段序号传递给传递给GetFieldTypeGetFieldType方法,可方法,可获获得代表得代表对对象的象的类类型型GetValueGetValue获获取以本机格式表示的指定列的取以本机格式表示的指定列的值值GetValuesGetValues获获取当前行集合中的所有属性列取当前行集合中的所有属性列IsDBNullIsDBNull获获取一个取一个值值,该值该值指示列中是否包含不存在的或缺少的指示列中是否包含不存在的或缺少的值值。如果指定的列如果指定的列值值与与DBNullDBNull等效,等效,则则返回返回TrueTrue;否;否则则返回返回FalseFalse
11、NextResultNextResult当当读读取批取批处处理理SQLSQL语语句的句的结结果果时时,使数据,使数据读读取器前取器前进进到下到下一个一个结结果。默果。默认认情况下,数据情况下,数据读读取器定位在第一取器定位在第一项结项结果上果上 6.1.4实例说明实例说明【实例实例6-1】1设计任务设计任务设计一个窗体,用于浏览选定班级的设计一个窗体,用于浏览选定班级的班级信息和该班对应的学生信息,其运行班级信息和该班对应的学生信息,其运行效果如图效果如图6-1所示,在所示,在“班级编号班级编号”对应的对应的组合框中选择一个班级编号,文本框中会组合框中选择一个班级编号,文本框中会显示对应班级的
12、显示对应班级的“班级名称班级名称”和和“班级编班级编号号”,同时列表框中会显示对应班级的学,同时列表框中会显示对应班级的学生信息。生信息。图图6-16-1使用数据读取器浏览数据源中的数据使用数据读取器浏览数据源中的数据 2设计过程设计过程(1)新建一个项目)新建一个项目Chapter6_1。(2)在窗体中添加)在窗体中添加1个个ComboBox控控件、件、2个个TextBox控件、控件、1个个ListBox控控件和多个件和多个Label控件,窗体及控件的控件,窗体及控件的设计外观如图设计外观如图6-2所示。所示。图图6-26-2窗体的设计状态窗体的设计状态 (3)切换到代码窗口,编写程序代)切
13、换到代码窗口,编写程序代码,实现其功能。码,实现其功能。窗体级对象变量的定义如代码窗体级对象变量的定义如代码6-1-1所所示。示。代代码码6-1-16-1-10101020203030404Dim Dim connconn As New As New SqlConnectionSqlConnection(Server=(local);(Server=(local);Database=Database=JWInfoJWInfo;&_;&_ Integrated Security=SSPI)Integrated Security=SSPI)Dim Dim commcomm As New As Ne
14、w SqlCommandSqlCommandDim reader1 As Dim reader1 As SqlDataReaderSqlDataReader 窗体窗体Load事件的程序代码如代码事件的程序代码如代码6-1-2所示。所示。ComboBox控件的控件的SelectedIndexChanged事件的程序代码如事件的程序代码如代码代码6-1-3所示。所示。3代码分析代码分析(1)代码)代码6-1-1定义了定义了SqlConnection连接对象、连接对象、SqlCommand数据命令对数据命令对象和象和SqlDataReader数据读取器对象。数据读取器对象。由于这三个对象变量是在所有
15、事件过由于这三个对象变量是在所有事件过程的外部定义的,所以整个窗体的所程的外部定义的,所以整个窗体的所有过程都可以访问。有过程都可以访问。(2)代码)代码6-1-2实现了将实现了将“班级编号班级编号”字段的数据内容填充到字段的数据内容填充到ComboBox控件中供用户选择。控件中供用户选择。(3)代码)代码6-1-3主要实现了以下功能:主要实现了以下功能:当用户从组合框当用户从组合框ComboBox1中选择中选择某一个班级编号时,程序执行数据命某一个班级编号时,程序执行数据命令以便从数据表中提取出该班级编号令以便从数据表中提取出该班级编号对应的班级数据和学生数据,然后将对应的班级数据和学生数据
16、,然后将各个字段的内容赋给窗体上的相应控各个字段的内容赋给窗体上的相应控件。件。(4)代码)代码6-1-3中同一个中同一个SqlCommand对象先后执行了两条不对象先后执行了两条不同的同的SQL语句,第语句,第09、10两行对应的两行对应的SQL语句用于从数据库的语句用于从数据库的“班级班级”表表中读取数据。数据读取完毕后必须关中读取数据。数据读取完毕后必须关闭数据读取器,否则第二次调用闭数据读取器,否则第二次调用SqlCommand对象的对象的ExecuteReader方法时会出现错误。第方法时会出现错误。第20、21两行对两行对应的应的SQL语句用于从数据库的语句用于从数据库的“学生学生
17、信息信息”表中读取数据。表中读取数据。(5)代码)代码6-1-3中的第中的第14、15行两条行两条语句用于将返回数据记录的特定字段语句用于将返回数据记录的特定字段的内容赋给相应的文本框,第的内容赋给相应的文本框,第28、29行对应的语句用于将行对应的语句用于将“学生信息学生信息”表表中选定班级的学生数据显示在中选定班级的学生数据显示在ListBox控件中。控件中。4知识要点说明知识要点说明本节使用数据读取器从数据表中提取本节使用数据读取器从数据表中提取数据,使用数据读取器能够有效地提高应数据,使用数据读取器能够有效地提高应用程序的性能,主要原因是:用程序的性能,主要原因是:(1)可以在使用数据
18、时即时提取数)可以在使用数据时即时提取数据,而不必等待查询的整个结果返回;据,而不必等待查询的整个结果返回;(2)默认一次只能在内存中保存一)默认一次只能在内存中保存一条数据记录,降低了系统的负荷。条数据记录,降低了系统的负荷。6.26.2使用数据适配器浏览单个数使用数据适配器浏览单个数据表中的数据据表中的数据6.2.1创建创建DataAdapter对象对象可以利用可以利用“工具箱工具箱”中的中的DataAdapter组件创建,也可以编写程序代码创建。组件创建,也可以编写程序代码创建。VisualStudio.NET中提供了中提供了SqlDataAdapter和和OleDbDataAdapte
19、r等多等多种类用于分别创建相应的种类用于分别创建相应的DataAdapter对象。对象。1创建创建SqlDataAdapter对象对象 语法格式如下。语法格式如下。Dim Dim 对象名对象名 As New As New SqlDataAdapterSqlDataAdapter 2创建创建OleDbDataAdapter对象对象语法格式如下。语法格式如下。Dim对象名对象名AsNewOleDbDataAdapter 3SqlDataAdapter构造函数的重构造函数的重载形式载形式SqlDataAdapter类或类或OleDbDataAdapter类有四种重载形式,类有四种重载形式,SqlDa
20、taAdapter构造函数的重载形式如下。构造函数的重载形式如下。(1)SqlDataAdapter()(2)SqlDataAdapter(ByValselectCommandAsSqlCommand)(3)SqlDataAdapter(ByValselectCommandTextAsString,_ByValselectConnectionAsSqlConnection)(4)SqlDataAdapter(ByValselectCommandTextAsString,_ByValselectConnectionStringAsString)数据访问最主要的操作是查询、插入、数据访问最主要的操
21、作是查询、插入、删除和更新四种,删除和更新四种,DataAdapter对象提供了对象提供了四个属性与这四种操作相对应,设置了这四个属性与这四种操作相对应,设置了这四个属性后,四个属性后,DataAdapter对象就知道如何对象就知道如何从数据库获得所需的数据,可以是新增记从数据库获得所需的数据,可以是新增记录或者删除记录,也可以是更新数据源。录或者删除记录,也可以是更新数据源。四种属性如表四种属性如表6-3所示。所示。属属 性性 名名 称称属属 性性 说说 明明SelectCommandSelectCommand设设置或置或获获取从数据取从数据库库中中选择选择数据的数据的SQLSQL语语句或存
22、句或存储过储过程程InsertCommandInsertCommand设设置或置或获获取向数据取向数据库库中插入新中插入新记录记录的的SQLSQL语语句或存句或存储过储过程程DeleteCommandDeleteCommand设设置或置或获获取数据取数据库库中中删删除除记录记录的的SQLSQL语语句或存句或存储过储过程程UpdateCommandUpdateCommand设设置或置或获获取更新数据源中取更新数据源中记录记录的的SQLSQL语语句或存句或存储过储过程程TableMappingsTableMappings获获取一个集合,它提供数据源表和取一个集合,它提供数据源表和DataTable
23、DataTable之之间间的主映射,的主映射,该对该对象决定了数据表中的列与数据源之象决定了数据表中的列与数据源之间间的关系。默的关系。默认值认值是一个空集合是一个空集合表表6-36-3 DataAdapterDataAdapter类的常用属性类的常用属性 6.2.3DataAdapter类的主要类的主要方法方法1Fill方法方法Fill方法用于向方法用于向DataSet对象填充从数对象填充从数据源中读取的数据。据源中读取的数据。(1)调用)调用Fill方法的语法格式方法的语法格式 调用调用FillFill方法的语法格式有多种,常方法的语法格式有多种,常见的格式如下。见的格式如下。DataAd
24、apterDataAdapter对象名对象名.Fill.Fill(DataSetDataSet对象名,对象名,数据表名数据表名)其中第一个参数是数据集对象名,表其中第一个参数是数据集对象名,表示要填充的数据集对象;第二个参数是一示要填充的数据集对象;第二个参数是一个字符串,表示本地缓冲区中建立的临时个字符串,表示本地缓冲区中建立的临时表的名称。表的名称。(2)Fill方法的重载版本方法的重载版本Fill方法提供了方法提供了8个重载版本,最常用个重载版本,最常用的有以下的有以下4个重载版本。个重载版本。Fill(ByValds1AsDataSet)AsIntegerFill(ByValds1As
25、DataSet,ByValsrcTableAsString)AsIntegerFill(ByValds1AsDataSet,ByValstartRecordAsInteger,_ByValmaxRecordsAsInteger,ByValsrcTableAsString)AsIntegerFill(ByValtempTableAsDataTable)AsInteger (3)Fill方法的正确使用方法的正确使用如果调用如果调用Fill()之前连接已关闭,则之前连接已关闭,则先将其打开以检索数据,数据检索完成后先将其打开以检索数据,数据检索完成后再将连接关闭。如果调用再将连接关闭。如果调用Fil
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ADO.NET数据库访问技术案例教程 第6章 浏览数据源中的数据 ADO NET 数据库 访问 技术 案例 教程 浏览 数据源 中的 数据
限制150内