《第9章-ADO.Net数据库访问技术ppt课件(全).ppt》由会员分享,可在线阅读,更多相关《第9章-ADO.Net数据库访问技术ppt课件(全).ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第8 8章章 面向对象程序设计面向对象程序设计VB.Net 程序程序设计教设计教程程 本章学习目标:本章学习目标:掌握应用掌握应用ADO.NetADO.Net数据访问对象访问数据库的技术数据访问对象访问数据库的技术 掌握应用数据集掌握应用数据集DateSetDateSet脱机访问数据库的技术脱机访问数据库的技术 掌握掌握DataGridViewDataGridView控件的应用控件的应用 9.19.1 数据库简介数据库简介 数据库系统是指实际可运行的,按照数据库方式存储、维护和向应用系统提供数据支持的计算机系统。数据模型有四种,分别是层次模型、网状模型、关系模型和面向对象模型,目前最常用的数
2、据模型是关系模型关系模型。9.1.1 9.1.1 数数据据库的基本的基本概概念念9.19.1 数据库简介数据库简介1 1查询语句句SELECTSELECT格式:SELECT FROM WHERE GROUP BY HAVING ORDER BY 功能:从由“数据表名”指定的表中查询满足“条件”的记录,查询结果中只包含由“字段名列表”列出的字段信息。(1)是若干字段的列表,字段名之间用逗号分开。(2)FROM 是指明取得数据的一个或多个数据表,多个数据表之间用逗号分开。(3)WHERE 限制由查询所返回的记录条数为那些符合条件的记录。(4)GROUP BY 把特定字段具有相同值的记录划在一组,对
3、这一组数据进行各种操作。(5)HAVING 作用同WHERE(6)ORDER BY 指明数据得排列方式。9.19.1 数据库简介数据库简介2 2插入记录语句插入记录语句INSERTINSERT格式:INSERT INTO (,)VALUES(,)功能:向数据表添加记录。有几个字段名,就要对应几个字段名的值。3 3修改记录语句修改记录语句UPDATEUPDATE格式:UPDATE SET ,WHERE ANDOR 功能:修改数据表中满足条件的记录。如果同时更新很多个字段的数据时,字段与字段间的值用逗号隔开。4 4删除记录语句删除记录语句DELETEDELETE格式:DELETE WHERE AN
4、DOR 功能:删除数据表中满足条件的记录 9.29.2 ADO.Net ADO.Net概述概述 1 1NET Framework NET Framework 数数据提供程序据提供程序2 2DataSetDataSet9.2.1 ADO.Net9.2.1 ADO.Net组织结构构9.29.2 ADO.Net ADO.Net概述概述 9.2.2 9.2.2 选择合适的合适的.NET Framework.NET Framework 数数据提供程序据提供程序 .NET Framework 数据提供程序数据提供程序 说明说明SQL Server.NET Framework 数据提供程序提供对 Micro
5、soft SQL Server 7.0 版或更高版本的数据访问。使用 System.Data.SqlClient 命名空间。OLE DB.NET Framework 数据提供程序适合于使用 OLE DB 公开的数据源。使用 System.Data.OleDb 命名空间。ODBC.NET Framework数据提供程序适合于使用 ODBC 公开的数据源。使用 System.Data.Odbc 命名空间。Oracle.NET Framework 数据提供程序适用于 Oracle 数据源。Oracle.NET Framework 数据提供程序支持 Oracle 客户端软件 8.1.7 版和更高版本,
6、使用 System.Data.OracleClient 命名空间。对象对象说明说明Connection建立与特定数据源的连接。所有 Connection 对象的基类均为 DbConnection 类。Command对数据源执行命令。公开 Parameters,并且可以通过 Connection 在 Transaction 的范围内执行。所有 Command 对象的基类均为 DbCommand 类。DataReader从数据源中读取只进且只读的数据流。所有 DataReader 对象的基类均为 DbDataReader 类。DataAdapter用数据源填充 DataSet 并解析更新。所有 D
7、ataAdapter 对象的基类均为 DbDataAdapter 类。表9-1.NET Framework 中的数据提供程序 表9-2 .NET Framework数据提供程序中的核心对象 9.2 Ado.Net9.2 Ado.Net概述概述1 1连接接环境下境下访问数数据据库的基本步的基本步骤(1)使用Connection对象连接到数据库(2)使用Command对象执行查询、添加、删除和修改记录等SQL语句(3)若执行查询语句,将结果集返回给DataReader对象,再调用DataReader中的方法将结果读取到应用程序。(4)关闭数据连接2 2非非连接接环境下境下访问数数据据库的基本步的基
8、本步骤(1)创建DataAdapter对象,设置其连接属性和要执行的SQL命令属性(2)创建DataSet对象,调用DataAdapter的方法执行SQL命令,将结果集填充到DataSet对象。(3)关闭连接(4)处理DataSet中的数据(显示、添加、修改、删除等)(5)若更新了DataSet中数据,想把更新的数据保存到数据库,则需重新打开连接,执行更新数据库的语句。9.2.3 9.2.3 访问数数据据库的基本的基本过程程9.3 9.3 连接环境下访问数据库连接环境下访问数据库 1 1使用使用SqlConnectionSqlConnection对象连接到数据库对象连接到数据库(1)SqlCo
9、nnection对象的常用属性和方法9.3.1 9.3.1 使用使用数数据据访问对象象属性和方法属性和方法描描 述述ConnectionString属性设置或获取用于打开 SQL Server 数据库的连接字符串Open()方法打开与数据库的连接Close()方法关闭与数据库的连接表9-3 SqlConnection对象的属性和方法属性属性描描 述述Provider建立连接的数据供应商。只有 OleDbConnection 需要设置该值Connect Timeout建立连接的超时值,默认是15秒Initial Catalog当连接到SQL Server 或Oracle 数据源时,它指定数据库的
10、名称Data Source指定数据库的位置,既可以是Access 数据库的路径,也可以是SQL Server或Oracle 数据库所在计算机的名称。PasswordSQL Server 登陆账号密码User IDSQL Server 登陆账号名称Integrated Security 或Trusted_Connection是否使用 Windows 集成验证,值为 True,False,和 SSPI(SSPI=True)表9-4 连接字符串的属性 9.3 9.3 连接环境下访问数据库连接环境下访问数据库 2 2种种典型的典型的连接字符串:接字符串:使用当前的Windows帐户登录本地数据库Dim
11、 connectionString As String=Data Source=(local);Initial Catalog=NorthWind;Integrated Security=SSPI“使用SQL Server登陆账号和密码Dim connectionString As String=Data Source=(local);Initial Catalog=NorthWind;User ID=sa;Password=sa;Integrated Security=False 9.3 9.3 连接环境下访问数据库连接环境下访问数据库(2 2)设置)设置SqlConnectionSqlCo
12、nnection对象的连接字符串对象的连接字符串可以在构造函数中指定:可以在构造函数中指定:Dim Conn As New SqlConnection(connectionString)也可以设置也可以设置ConnectionStringConnectionString属性:属性:Dim Conn As New SqlConnection Conn.ConnectionString=connectionString 成功创建了SqlConnection对象,可以调用Open方法打开与数据库连接(Conn.Open),也可以调用Close方法断开连接(Conn.Close)。9.3 9.3 连接
13、环境下访问数据库连接环境下访问数据库 2 2使用使用SqlCommandSqlCommand对象象执行行对数数据据库的操作的操作(1)SqlCommand对象的常用属性和方法 属性属性描描 述述Connection获取或设置此Command对象使用的Connection对象的名称。CommandType要执行的命令类型,该属性是CommandType枚举型,包括Text(SQL命令,是缺省CommandType)、StoredProcedure(存储过程名)、TableDirect(表名,Command对象将表名传递给服务器)。CommandTextSQL 语句或存储过程的名字Paramete
14、rsCommand 对象可以包含0个或多个参数方法方法描述描述ExecuteScalar执行返回单一值的命令。通常用于执行返回一行记录的一个字段值的Select语句ExecuteReader执行返回行集的命令。返回值是一个DataReader对象.通常用于执行返回多行记录的Select语句ExecuteNonQuery执行INSERT、DELELE、UPDATE等SQL语句,并可返回影响行数表9-5 SqlCommand对象的属性 表9-6 SqlCommand对象的方法 9.3 9.3 连接环境下访问数据库连接环境下访问数据库(2 2)创建)创建SqlCommandSqlCommand对象对
15、象 SqlCommand对象包含多个重载的New方法,通常采用两种形式创建SqlCommand对象。调用空参的New方法创建Command对象,然后设置适当的属性。例如:Dim Cmd As New SqlCommandCmd.CommandText=“Select Name,Age From dbo.Student”Cmd.Connection=Conn Conn为已创建的SqlConnection对象 通过New方法的参数指定查询字符串和Connection对象。例如:Dim Cmd As New SqlCommand(“Select*From Student”,Conn)9.3 9.3
16、连接环境下访问数据库连接环境下访问数据库 3 3使用使用SqlDataReaderSqlDataReader对象象读取取查询结果果(1)创建SqlDataReader对象Dim dr As SqlDataReader=Cmd.ExecuteReader()(2)SqlDataReader对象的常用属性和方法属性属性描描 述述HasRows 获取一个Int32型值,该值指示当前SqlDataReader是否包含1行或多行记录。FieldCount获取当前行中的列数。如果未放在有效的记录集中,则为 0;否则为当前行中的列数。默认值为-1。Item 在给定从零开始的索引号或给定列名情况下,获取指定列
17、的值。方法方法描述描述Read()移动到结果集中下一行记录位置。如果没有记录可读,则Read()返回 false,此时应关闭 DataReaderGetXxx(index)获取指定列的值,index为从0开始的序列号,GetString(0),GetInt32(1)GetValues()返回当前行所有列的值,一个 Object 类型的数组IsDbNull(index)检查某一列是否为空,index为从0开始的序列号GetName(index)获取指定列的名称,index为从0开始的序列号GetOrdinal(name)在给定列名称的情况下获取列序号,name为列的名称GetFieldType(
18、index)在给定从零开始的索引号情况下,获取当前列数据对象的类型。表9-7 SqlDataReader的常用属性 表9-8 SqlDataReader的常用方法 9.3 9.3 连接环境下访问数据库连接环境下访问数据库(3 3)遍历)遍历SqlDataReaderSqlDataReader中的记录中的记录While myreader.read()myreader是以创建的SqlDataReader对象处理当前记录End While(4 4)获取各列的值)获取各列的值 使用Item属性返回指定列的值Dim FieldValue As Object=myreader(0)获取第0列的值Dim F
19、ieldValue=myreader(“Name”)获取列名为Name字段的值 使用多个Get方法返回指定列的值Dim str As String=myreader.GetString(0)Dim inte As Integer=myreader.GetInt32(1)9.3 9.3 连接环境下访问数据库连接环境下访问数据库【例例9-19-1】设计如图9-3所示的“学生个人信息管理”窗口,用于查询和更新数据库(库名StudentMIS)中的学生个人信息表(表名student)。9.3.2 9.3.2 连接接环境下境下访问数数据据库实例例 图9-3“学生个人信息管理”窗口 9.3 9.3 连接环
20、境下访问数据库连接环境下访问数据库 1 1设计要求要求(1)可以查询表中的全部记录(勾选右上角复选框,点击“查询”按钮),也可以按条件查询部分记录(选择“学号”、“姓名”、“班号”中某一个条件,输入关键字,点击“查询”按钮,将查询出 条件=关键字 的记录)(2)查询到的记录显示在列表框中(ListBox控件),列表框的上下分别显示表中共有多少行记录,本次查询到多少记录。(3)选中列表框中的某行记录,将这行记录各字段的值显示在下方的文本框中,并允许重新编辑各字段的值,然后可以对数据库表执行添加、删除和修改任务。2 2开开发准准备 在SqlServer数据服务器上建立新数据库StudentMIS,
21、在库中添加学生个人信息表student,其中各个字段的设置如图9-4所示。9.3 9.3 连接环境下访问数据库连接环境下访问数据库 3 3开开发过程程(1)引入命名空间(2)在窗体中定义数据访问对象以及其它成员(3)处理Form_Load事件(4)实现查询要求(5)处理ListBox控件的SelectedIndexChanged事件(6)实现添加记录的功能(7)实现删除功能(8)实现修改记录的功能(9)使用数据控件具体操作步骤和源程序参见教材具体操作步骤和源程序参见教材 9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库 1 1SqlDataAdapterSqlDataAdapter
22、的的属属性和方法性和方法 9.4.1 SqlDataAdapter9.4.1 SqlDataAdapter对象象属性属性描描 述述DeleteCommand 获取或设置一个SQL 语句或存储过程,用于在数据源中删除记录。InsertCommand获取或设置一个SQL 语句或存储过程,用于在数据源中插入新记录。SelectCommand 获取或设置一个SQL 语句或存储过程,用于在数据源中选择记录。UpdateCommand获取或设置一个SQL 语句或存储过程,用于更新数据源中的记录。属性:属性:(1)Fill方法 调用Fill方法时,SqlDataAdater对象自动执行SelectComma
23、nd属性中的Select命令,并将结果集填充到DataSet对象。声明:Public Function Fill(ByVal dataSet As DataSet,ByVal srcTable As String)As Integer典型格式:myadapter.Fill(mydataset,”mytable”)方法:方法:9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库 使用使用FillFill方法应注意以下几点:方法应注意以下几点:如果调用 Fill 之前连接已关闭,则将其打开以检索数据,然后再将其关闭。如果调用 Fill 之前连接已打开,它将保持打开状态。如果命令不返回任何行
24、,则不向 DataSet 中添加表,并且不引发异常。在填充 DataTable 时遇到重复列,它将以“columnname1”、“columnname2”、“columnname3”这样依次排序的模式命名后面的列。如果传入数据包含未命名的列,它们将按“Column1”、“Column2”的模式放在 DataSet 中。当指定的查询返回多项结果时,每个结果集都放置在单独的表中。将整数值追加到指定的表名从而对其他结果集进行命名(例如“Table”、“Table1”、“Table2”等)。如果某个查询不返回行,则不会为该查询创建表,因此,如果您先处理一个插入查询,然后再处理一个选择查询,那么由于为选
25、择查询创建的表是第一个表,所以该表将被命名为“Table”。使用列名和表名的应用程序应确保一定不要与这些命名模式发生冲突。9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库(2)Update方法 调用Update方法时,SqlDataAdater对象将DataSet中的数据按InsertCommand属性、DeleteCommand属性和UpdateCommand属性所指定的SQL命令更新数据源。n 声明:Public Function Update(ByVal dataSet As DataSet,ByVal srcTable As String)As Integern典型格式:m
26、yadapter.Update(mydataset,”mytable”)nSqlCommandBuilder类可用于用户对DataSet中数据的操作产生对应的属性Dim mybuilder As New SqlCommandBuilder(myadapter)myadapter.Update(mydataset,”mytable”)9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库 名称名称 说明说明 SqlDataAdapter()初始化 SqlDataAdapter 类的新实例。SqlDataAdapter(SqlCommand)初 始 化 SqlDataAdapter 类 的
27、新 实 例,用 指 定 的 SqlCommand 作 为 SelectCommand 的属性。SqlDataAdapter(String,SqlConnection)使用 SelectCommand 和 SqlConnection 对象初始化 SqlDataAdapter 类的新实例。SqlDataAdapter(String,String)用 SelectCommand 和一个连接字符串初始化 SqlDataAdapter 类的新实例。(3)构造方法典型调用方式:Dim myadapter As New SqlDataAdapter(Cmd)Dim myadapter As New SqlD
28、ataAdapter(CmdText,Conn)Dim myadapter As New SqlDataAdapter(CmdText,ConnStr)Dim myadapter As New SqlDataAdapter:myadapter.SelectCommand=Cmd 9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库 9.4.2 DataSet9.4.2 DataSet对象象1 1DataSetDataSet对象的常用象的常用属属性和方法性和方法 名称名称 说明说明 CaseSensitive 获取或设置一个值,该值指示 DataTable 对象中的字符串比较是否区分大小
29、写。DataSetName 获取或设置当前 DataSet 的名称。HasErrors 获取一个值,指示在此 DataSet 中的任何 DataTable 对象中是否存在错误。Namespace 获取或设置 DataSet 的命名空间。Relations 获取用于将表链接起来并允许从父表浏览到子表的关系的集合。Tables 获取包含在 DataSet 中的表的集合。属属性:性:名称名称 说明说明 AcceptChanges提交自加载此 DataSet 或上次调用 AcceptChanges 以来对其进行的所有更改。Clear通过移除所有表中的所有行来清除任何数据的 DataSet。Copy复制
30、该 DataSet 的结构和数据。GetChanges已重载。获取 DataSet 的副本,该副本包含自上次加载以来或自调用 AcceptChanges 以来对该数据集进行的所有更改。HasChanges已重载。获取一个值,该值指示 DataSet 是否有更改,包括新增行、已删除的行或已修改的行。Merge已重载。将指定的 DataSet、DataTable 或 DataRow 对象的数组合并到当前的 DataSet 或 DataTable 中。RejectChanges回滚自创建 DataSet 以来或上次调用 DataSet.AcceptChanges 以来对其进行的所有更改。方法:方法:
31、9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库 2 2DataSetDataSet对象的象的结构构 表集合中包含0个或多个表对象DataTable,每个表包含行集合Rows、列集合Columns和约束集合Constraints,行集合由若干行对象DataRow构成,每个行对象可表示一行记录,列集合由若干列对象DataColumn构成,每个列对象可表示一个字段,约束集合由若干约束对象Constraint构成,每个约束对象表示一个约束。关系集合包含若干关系对象DataRelation,每个关系对象表示两个DataTable之间的链接信息。下面分别介绍这些集合的属性和作用。9.4 9.
32、4 非连接环境下访问数据库非连接环境下访问数据库 3 3TablesTables集合和集合和DataTableDataTable对象象(1)Tables的属性和方法属性属性说明说明 Item从集合中获取指定的 DataTable 对象。Count获取集合中的元素的总数。方法方法说明说明 Add 将 DataTable 对象添加到集合中。AddRange 将指定的 DataTable 数组的元素复制到集合末尾。CanRemove 验证是否可以将指定的 DataTable 对象从集合中移除。Clear 清除所有 DataTable 对象的集合。Contains 获取一个值,该值指示集合中是否存在具
33、有指定名称的 DataTable 对象。CopyTo 将当前 DataTableCollection 的所有元素复制到一维 Array,从指定目标数组索引处开始。IndexOf 获取指定 DataTable 对象的集合中的索引。Remove 从集合中移除指定的 DataTable 对象。RemoveAt 从集合中移除位于指定索引位置的 DataTable 对象。9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库(2)DataTable对象 名称名称 说明说明 CaseSensitive 指示表中的字符串比较是否区分大小写。ChildRelations 获取此 DataTable 的子
34、关系的集合。Columns 获取属于该表的列的集合。Constraints 获取由该表维护的约束的集合。DataSet 获取此表所属的 DataSet。HasErrors 获取一个值,该值指示该表所属的 DataSet 的任何表的任何行中是否有错误。MinimumCapacity 获取或设置该表最初的起始大小。ParentRelations 获取该 DataTable 的父关系的集合。PrimaryKey 获取或设置充当数据表主键的列的数组。Rows 获取属于该表的行的集合。TableName 获取或设置 DataTable 的名称。属性:9.4 9.4 非连接环境下访问数据库非连接环境下访问
35、数据库 方法:名称名称 说明说明 AcceptChanges 提交自上次调用 AcceptChanges 以来对该表进行的所有更改。Clear清除所有数据的 DataTable。Copy复制该 DataTable 的结构和数据。GetChanges获取 DataTable 的副本,该副本包含自上次加载以来或自调用 AcceptChanges 以来对该数据集进行的所有更改。ImportRow将 DataRow 复制到 DataTable 中,保留任何属性设置以及初始值和当前值。Merge将指定的 DataTable 与当前的 DataTable 合并。NewRow 创建与该表具有相同架构的新 D
36、ataRow。RejectChanges 回滚自该表加载以来或上次调用 AcceptChanges 以来对该表进行的所有更改。Select 获取 DataRow 对象的数组。9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库(3)在Tables集合中加载和移除DataTable对象加加载DataTableDataTable的的两种两种方式:方式:通过通过SqlAdapterSqlAdapter的的FillFill方法自动创建方法自动创建 当查询的数据来自数据库中的单一表时,可以Fill方法中指定DataTable的名称。Dim myadapter As New SqlDataAdap
37、ter(“Select*from student”,Conn)myadapter.Fill(mydataset,”StuTab”)当查询的数据来自数据库的多个表时,Fill方法自动创建多个DataTable对象,每个DataTable存放一个表的记录,并且这些DataTable被默认的命名为Table0,Table1.Dim myadapter As New SqlDataAdapter(”Select*from student,course”)myadapter.Fill(mydataset)调用调用TablesTables集合的集合的AddAdd方法加载已创建的方法加载已创建的DataTa
38、bleDataTable对象对象Dim mydatatable As New DataTable(“StuTab”)mydataset.Tables.Add(mydatatable)9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库 从集合中移除从集合中移除DataTableDataTable对象对象:nClear方法清除所有表()nRemove方法移除某个指定名称的表mydataset.Tables.Remove(“StuTab”)nRemoveAt方法移除某个指定索引的表mydataset.Tables.RemoveAt(0)9.4 9.4 非连接环境下访问数据库非连接环境下访问
39、数据库 4 4ColumnsColumns集合和集合和DataColumnDataColumn对象象(1)Columns的属性和方法 属性属性说明说明Count获取集合中的元素的总数。Item从集合中获取指定的 DataColumn方法方法说明说明Add 创建 DataColumn 对象并将其添加到 AddRange 将指定的 DataColumn 数组的元素复制到集合末尾。Clear 清除集合中的所有列。Contains 检查集合是否包含具有指定名称的列。IndexOf 搜索指定的 DataColumn,并返回集合中第一个匹配项的从零开始的索引。Remove 从集合中移除 DataColum
40、n 对象。RemoveAt 从集合中移除指定索引位置的列。9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库(2)DataColumn对象名称名称 说明说明 AllowDBNull 获取或设置一个值,该值指示对于属于该表的行,此列中是否允许空值。AutoIncrement 获取或设置一个值,该值指示对于添加到该表中的新行,列是否将列的值自动递增。AutoIncrementSeed 获取或设置其 AutoIncrement 属性设置为 true 的列的起始值。AutoIncrementStep 获取或设置其 AutoIncrement 属性设置为 true 的列使用的增量。Captio
41、n 获取或设置列的标题。ColumnName 获取或设置 DataColumnCollection 中的列的名称。DataType 获取或设置存储在列中的数据的类型。DateTimeMode 获取或设置列的 DateTimeMode。DefaultValue 在创建新行时获取或设置列的默认值。MaxLength 获取或设置文本列的最大长度。Ordinal 获取列在 DataColumnCollection 集合中的位置。ReadOnly 获取或设置一个值,该值指示一旦向表中添加了行,列是否还允许更改。Table 获取列所属的 DataTable。Unique 获取或设置一个值,该值指示列的每一
42、行中的值是否必须是唯一的。9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库(3)在Columns集合中加载和移除DataColumn对象AddAdd方法加载对象方法加载对象Dim newcolumn As New DataColumn(“name”,System.Type.GetType(“System.String”)mydatatable.Columns.Add(newcolumn)或者mydatatable.Columns.Add(“name”,System.Type.GetType(“System.String”)ClearClear方法清除所有列方法清除所有列Remove
43、Remove方法移除某个指定名称的列方法移除某个指定名称的列RemoveAtRemoveAt方法移除某个指定索引的列方法移除某个指定索引的列()mydatatable.Columns.Remove(“name”)mydatatable.Columns.RemoveAt(0)9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库 5 5RowsRows集合和集合和DataRowDataRow对象象(1)Rows集合的属性和方法 属性属性说明说明 Count获取该集合中 DataRow 对象的总数Item获取指定索引处的行方法方法说明说明 Add 向 DataRowCollection 添加
44、 DataRow。Clear 清除所有行的集合。Contains 获取一个值,该值表明集合中任何行的主键列是否包含指定值。Find 获取指定的 DataRow。IndexOf 获取指定 DataRow 对象的索引。InsertAt 将新行插入到集合中的指定位置。Remove 从集合中移除指定的 DataRow。RemoveAt 从集合中移除指定索引处的行。9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库(2)DataRow对象 属性属性说明说明 Item获取或设置存储在指定列中的数据。Table获取该行拥有其架构的 DataTable。方法方法说明说明AcceptChanges 提
45、交自上次调用 AcceptChanges 以来对该行进行的所有更改。Delete 删除 DataRow。IsNull 获取一个值,该值指示指定的列是否包含空值。RejectChanges 拒绝自上次调用 AcceptChanges 以来对该行进行的所有更改。9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库(3)在Rows集合中加载和移除DataRow对象AddAdd方法加方法加载对象象Dim newrow As DataRow=mydatatable.NewRow()newrow(“Sno”)=”04090312”newrow(“Sname”)=”王长友”mydatatable.R
46、ows.Add(newrow)ClearClear方法方法清清除所有行除所有行RemoveRemove方法移除某方法移除某个个已知已知对象象RemoveAtRemoveAt方法移除某方法移除某个个指定索引的行指定索引的行()mydatatable.Rows.Remove(newrow)mydatatabe.Row.RemoveAt(0)9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库【例9-2】应用SqlDataAdapter对象和DataSet读取例9-1中建立的student表中全部记录,在窗体中显示前两列数据(包括列标题),然后更新DataSet中的记录,提交到数据库,要求修
47、改倒数第二行记录,删除最后一行记录,再添加一行记录。1读取全部记录2.更新记录3使用SqlDataAdapter控件非非连接接环境下境下访问数数据据库实例例 图9-12 读取记录图 图9-13更新记录 具体操作步骤和源程序参见教材具体操作步骤和源程序参见教材 9.5 DataGridView9.5 DataGridView控件控件 (1)从数据工具箱将DataGridView控件拖放到窗体,将控件名称改为“datagrid”,在其属性窗口内的DataSource属性上选择“添加项目数据源”,如图9-17所示。(2)在弹出的“数据源配置向导”窗口中选择“数据库”,点击下一步,如果9-18所示。9
48、.5.1 9.5.1 控件控件与数与数据据绑定定图9-17 添加数据源 图9-18 选择数据源类型 9.5 DataGridView9.5 DataGridView控件控件 (3)“选择您的数据连接”窗口内选择一个可用连接或“新建连接”,如图9-19。(4)“选择数据库对象”窗口内选择表student,也可以多个表或表中的部分列,选中的对象将填充到DataSet中,可以自定义DataSet的名称为myds,然后点“完成”如图9-20所示。绑定效果:9.5 DataGridView9.5 DataGridView控件控件 设置DataGridView控件的外观,可以通过属性窗口修改“外观”属性,
49、也可通过编程的方式对各个属性赋值。9.5.2 9.5.2 设置置DataGridViewDataGridView外外观1 1边框、框、网网格格线和背景色和背景色可以通过修改以下属性值来设置边框、网格线和背景色的外观。(1)BackgroundColor:背景色(2)BorderStyle:外边框的样式,可选值有None(无边框)、FixedSingle和Fixed3D(3)CellBorderStyle:单元格间的网格线样式,可选None、Custom、Sunken、Raised、Single等值(4)GridColor:网格线颜色2 2设置单元格样式设置单元格样式 DataGridView单
50、元格样式包含属性如表9-20所示。属性属性 说明说明 DefaultCellStyle获取或设置整个控件(包括标题单元格)、一列或一行中所有单元格使用的默认样式。RowsDefaultCellStyle获取或设置控件中所有行使用的默认单元格样式。不包括标题单元格。AlternatingRowsDefaultCellStyle获取或设置控件中交替行(偶数行)使用的默认单元格样式。用于创建帐目型的效果。RowHeadersDefaultCellStyle获取或设置控件的行标题使用的默认单元格样式。如果启用视觉样式,则用当前主题进行重写。ColumnHeadersDefaultCellStyle获取