第9章 ADO.Net数据库访问技术课件.ppt
《第9章 ADO.Net数据库访问技术课件.ppt》由会员分享,可在线阅读,更多相关《第9章 ADO.Net数据库访问技术课件.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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格式:DEL
4、ETE WHERE ANDOR 功能:删除数据表中满足条件的记录 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 Framew
5、ork 数据提供程序提供对 Microsoft 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 数据提供程序支持 Ora
6、cle 客户端软件 8.1.7 版和更高版本,使用 System.Data.OracleClient 命名空间。对象对象说明说明Connection建立与特定数据源的连接。所有 Connection 对象的基类均为 DbConnection 类。Command对数据源执行命令。公开 Parameters,并且可以通过 Connection 在 Transaction 的范围内执行。所有 Command 对象的基类均为 DbCommand 类。DataReader从数据源中读取只进且只读的数据流。所有 DataReader 对象的基类均为 DbDataReader 类。DataAdapter用数
7、据源填充 DataSet 并解析更新。所有 DataAdapter 对象的基类均为 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)关闭
8、数据连接2 2非非连连接接环环境下境下访问数访问数据据库库的基本步的基本步骤骤(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使用使用SqlConnec
9、tionSqlConnection对象连接到数据库对象连接到数据库(1)SqlConnection对象的常用属性和方法9.3.1 9.3.1 使用使用数数据据访问对访问对象象属性和方法属性和方法描描 述述ConnectionString属性设置或获取用于打开 SQL Server 数据库的连接字符串Open()方法打开与数据库的连接Close()方法关闭与数据库的连接表9-3 SqlConnection对象的属性和方法属性属性描描 述述Provider建立连接的数据供应商。 只有 OleDbConnection 需要设置该值Connect Timeout建立连接的超时值,默认是15秒Initi
10、al Catalog当连接到SQL Server 或Oracle 数据源时,它指定数据库的名称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 连接环境下访问数据库连接环境下访问
11、数据库 2 2种种典型的典型的连连接字符串:接字符串: 使用当前的Windows帐户登录本地数据库Dim 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=Fa
12、lse 9.3 9.3 连接环境下访问数据库连接环境下访问数据库 (2 2)设置)设置SqlConnectionSqlConnection对象的连接字符串对象的连接字符串可以在构造函数中指定:可以在构造函数中指定: Dim Conn As New SqlConnection(connectionString)也可以设置也可以设置ConnectionStringConnectionString属性:属性:Dim Conn As New SqlConnection Conn. ConnectionString= connectionString 成功创建了SqlConnection对象,可以调用O
13、pen方法打开与数据库连接(Conn.Open),也可以调用Close方法断开连接(Conn.Close)。 9.3 9.3 连接环境下访问数据库连接环境下访问数据库 2 2使用使用SqlCommandSqlCommand对对象象执执行行对数对数据据库库的操作的操作(1)SqlCommand对象的常用属性和方法 属性属性描描 述述Connection获取或设置此Command对象使用的Connection对象的名称。CommandType要执行的命令类型,该属性是CommandType枚举型,包括Text (SQL命令,是缺省CommandType)、StoredProcedure(存储过程名
14、)、TableDirect(表名,Command对象将表名传递给服务器)。CommandTextSQL 语句或存储过程的名字ParametersCommand 对象可以包含0个或多个参数方法方法描述描述ExecuteScalar执行返回单一值的命令。通常用于执行返回一行记录的一个字段值的Select语句ExecuteReader执行返回行集的命令。返回值是一个DataReader对象.通常用于执行返回多行记录的Select语句ExecuteNonQuery执行INSERT、DELELE、UPDATE等SQL语句,并可返回影响行数表9-5 SqlCommand对象的属性 表9-6 SqlComm
15、and对象的方法 9.3 9.3 连接环境下访问数据库连接环境下访问数据库 (2 2)创建)创建SqlCommandSqlCommand对象对象 SqlCommand对象包含多个重载的New方法,通常采用两种形式创建SqlCommand对象。 调用空参的New方法创建Command对象,然后设置适当的属性。例如:Dim Cmd As New SqlCommandCmd.CommandText = “Select Name, Age From dbo.Student”Cmd.Connection = Conn Conn为已创建的SqlConnection对象 通过New方法的参数指定查询字符串和
16、Connection对象。例如:Dim Cmd As New SqlCommand(“Select * From Student”, Conn) 9.3 9.3 连接环境下访问数据库连接环境下访问数据库 3 3使用使用SqlDataReaderSqlDataReader对对象象读读取取查询结查询结果果(1)创建SqlDataReader对象Dim dr As SqlDataReader =Cmd.ExecuteReader()(2)SqlDataReader对象的常用属性和方法属性属性描描 述述HasRows 获取一个Int32型值,该值指示当前SqlDataReader是否包含1行或多行记录
17、。FieldCount获取当前行中的列数。如果未放在有效的记录集中,则为 0;否则为当前行中的列数。默认值为 -1。Item 在给定从零开始的索引号或给定列名情况下,获取指定列的值。方法方法描述描述Read()移动到结果集中下一行记录位置。 如果没有记录可读,则Read() 返回 false,此时应关闭 DataReaderGetXxx(index)获取指定列的值,index为从0开始的序列号,GetString(0),GetInt32(1)GetValues()返回当前行所有列的值,一个 Object 类型的数组IsDbNull(index)检查某一列是否为空, index为从0开始的序列号
18、GetName(index)获取指定列的名称,index为从0开始的序列号GetOrdinal(name)在给定列名称的情况下获取列序号,name为列的名称GetFieldType(index)在给定从零开始的索引号情况下,获取当前列数据对象的类型。表9-7 SqlDataReader的常用属性 表9-8 SqlDataReader的常用方法 9.3 9.3 连接环境下访问数据库连接环境下访问数据库 (3 3)遍历)遍历SqlDataReaderSqlDataReader中的记录中的记录While myreader . read( ) myreader是以创建的SqlDataReader对象处
19、理当前记录End While (4 4)获取各列的值)获取各列的值 使用Item属性返回指定列的值Dim FieldValue As Object = myreader( 0 ) 获取第0列的值Dim FieldValue = 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
20、所示的“学生个人信息管理”窗口,用于查询和更新数据库(库名StudentMIS)中的学生个人信息表(表名student)。 9.3.2 9.3.2 连连接接环环境下境下访问数访问数据据库实库实例例 图9-3“学生个人信息管理”窗口 9.3 9.3 连接环境下访问数据库连接环境下访问数据库 1 1设计设计要求要求(1)可以查询表中的全部记录(勾选右上角复选框,点击“查询”按钮),也可以按条件查询部分记录(选择“学号”、“姓名”、“班号”中某一个条件,输入关键字,点击“查询”按钮,将查询出 条件=关键字 的记录)(2)查询到的记录显示在列表框中(ListBox控件),列表框的上下分别显示表中共有多
21、少行记录,本次查询到多少记录。(3)选中列表框中的某行记录,将这行记录各字段的值显示在下方的文本框中,并允许重新编辑各字段的值,然后可以对数据库表执行添加、删除和修改任务。2 2开发开发准准备备 在SqlServer数据服务器上建立新数据库StudentMIS,在库中添加学生个人信息表student,其中各个字段的设置如图9-4所示。 9.3 9.3 连接环境下访问数据库连接环境下访问数据库 3 3开发过开发过程程(1)引入命名空间(2)在窗体中定义数据访问对象以及其它成员(3)处理Form_Load事件 (4)实现查询要求 (5)处理ListBox控件的SelectedIndexChange
22、d事件 (6)实现添加记录的功能 (7)实现删除功能 (8)实现修改记录的功能 (9)使用数据控件具体操作步骤和源程序参见教材具体操作步骤和源程序参见教材 9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库 1 1SqlDataAdapterSqlDataAdapter的的属属性和方法性和方法 9.4.1 SqlDataAdapter9.4.1 SqlDataAdapter对对象象属性属性描描 述述DeleteCommand 获取或设置一个SQL 语句或存储过程,用于在数据源中删除记录。InsertCommand获取或设置一个SQL 语句或存储过程,用于在数据源中插入新记录。Sele
23、ctCommand 获取或设置一个SQL 语句或存储过程,用于在数据源中选择记录。UpdateCommand获取或设置一个SQL 语句或存储过程,用于更新数据源中的记录。属性:属性: (1)Fill方法 调用Fill方法时,SqlDataAdater对象自动执行SelectCommand属性中的Select命令,并将结果集填充到DataSet对象。 声明:Public Function Fill(ByVal dataSet As DataSet , ByVal srcTable As String ) As Integer典型格式:myadapter.Fill( mydataset , ”my
24、table”) 方法:方法: 9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库 使用使用FillFill方法应注意以下几点:方法应注意以下几点: 如果调用 Fill 之前连接已关闭,则将其打开以检索数据,然后再将其关闭。如果调用 Fill 之前连接已打开,它将保持打开状态。 如果命令不返回任何行,则不向 DataSet 中添加表,并且不引发异常。 在填充 DataTable 时遇到重复列,它将以“columnname1”、“columnname2”、“columnname3”这样依次排序的模式命名后面的列。如果传入数据包含未命名的列,它们将按“Column1”、“Column2”的
25、模式放在 DataSet 中。 当指定的查询返回多项结果时,每个结果集都放置在单独的表中。将整数值追加到指定的表名从而对其他结果集进行命名(例如“Table”、“Table1”、“Table2”等)。如果某个查询不返回行,则不会为该查询创建表,因此,如果您先处理一个插入查询,然后再处理一个选择查询,那么由于为选择查询创建的表是第一个表,所以该表将被命名为“Table”。使用列名和表名的应用程序应确保一定不要与这些命名模式发生冲突。 9.4 9.4 非连接环境下访问数据库非连接环境下访问数据库 (2)Update方法 调用Update方法时,SqlDataAdater对象将DataSet中的数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第9章 ADO.Net数据库访问技术课件 ADO Net 数据库 访问 技术 课件
限制150内