收藏 分享(赏)

数据库访问技术(ADO_NET).ppt

上传人:cw6mk8 文档编号:9562252 上传时间:2019-08-15 格式:PPT 页数:30 大小:223KB
下载 相关 举报
数据库访问技术(ADO_NET).ppt_第1页
第1页 / 共30页
数据库访问技术(ADO_NET).ppt_第2页
第2页 / 共30页
数据库访问技术(ADO_NET).ppt_第3页
第3页 / 共30页
数据库访问技术(ADO_NET).ppt_第4页
第4页 / 共30页
数据库访问技术(ADO_NET).ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、数据库访问技术,ADO.NET,ADO.NET的起源,1998年起,因为Web应用程序的窜起,大大改变了许多应用程序的设计方式,传统的数据库连线保存设计法无法适用于此类应用程序,这让ADO应用程序遇到了很大的瓶颈,也让微软开始思考让资料集(Resultset,在ADO中称为Recordset)能够离线化的能力,以及能在用户端创建一个小型数据库的概念,这个概念就是中离线型资料模型 (disconnected data model) 的基础,而在ADO的使用情形来看,数据库连线以及资源耗用的情形较严重(像是 Server-side cursor 或是 Recordset.Open 会保持连线状态)

2、,在中也改良了这些组件,构成了能够减少数据库连线和资源使用量的功能。XML的使用也是这个版本的重要发展之一。2000年,微软的Microsoft .NET计划开始成形,许多的微软产品都冠上.NET的标签,ADO+也不例外,改名为并包装到.NET Framework类别库中,成为.NET平台中唯一的资料存取组件。,ADO.NET简介,ADO.NET 是一组向 .NET Framework 程序员公开数据访问服务的类。 ADO.NET 为创建分布式数据共享应用程序提供了一组丰富的组件。 它提供了对关系数据、XML 和应用程序数据的访问,因此是 .NET Framework 中不可缺少的一部分。 A

3、DO.NET 支持多种开发需求,包括创建由应用程序、工具、语言或 Internet 浏览器使用的前端数据库客户端和中间层业务对象。,ADO.NET简介,ADO.NET 提供对诸如 SQL Server 和 XML 这样的数据源以及通过 OLE DB 和 ODBC 公开的数据源的一致访问。 共享数据的使用方应用程序可以使用 ADO.NET 连接到这些数据源,并可以检索、处理和更新其中包含的数据。 ADO.NET 通过数据处理将数据访问分解为多个可以单独使用或一前一后使用的不连续组件。 ADO.NET 包含用于连接到数据库、执行命令和检索结果的 .NET Framework 数据提供程序。 这些结

4、果或者被直接处理,放在 ADO.NET DataSet 对象中以便以特别的方式向用户公开,并与来自多个源的数据组合;或者在层之间传递。 DataSet 对象也可以独立于 .NET Framework 数据提供程序,用于管理应用程序本地的数据或源自 XML 的数据。,ADO.NET的结构及组件,ADO.NET 用于访问和操作数据的两个主要组件是 .NET Framework 数据提供程序和 DataSet。NET Framework 数据提供程序 .NET Framework 数据提供程序是专门为数据操作以及快速、只进、只读访问数据而设计的组件。 主要包括Connection、 Command

5、、 DataReader 、 DataAdapter四个对象,ADO.NET的结构及组件,ADO.NET DataSet 是专门为独立于任何数据源的数据访问而设计的。 因此,它可以用于多种不同的数据源,用于 XML 数据,或用于管理应用程序本地的数据。 DataSet 包含一个或多个 DataTable 对象的集合,这些对象由数据行和数据列以及有关 DataTable 对象中数据的主键、外键、约束和关系信息组成。,ADO.NET的结构及组件,ADO.NET 数据提供程序,SQL Server .NET Framework 数据提供程序 (System.Data.SqlClient) OLE D

6、B .NET Framework 数据提供程序 (System.Data.OleDb) ODBC .NET Framework 数据提供程序 (System.Data.Odbc) Oracle .NET Framework 数据提供程序 (System.Data.OracleClient),Connection对象,Connection对象提供与数据源的连接。要存取数据源内的数据,首先要建立程序和数据源之间的连接。 属性 (1)ConnectionString:获取或设置用于打开数据库的字符串,包括字符串的内容和数据提供器名称。 (2)State:获取连接的当前状态方法 (1)Open()方法

7、:用于打开由ConnectionString属性指定的数据源连接 (2)Close()方法:关闭数据源连接,Connection对象,Imports System Imports System.Data Imports System.Data.SqlClient Dim sqlconn=new sqlconnnection Sqlconn.connectionString As String = _ “Data Source=(local);Initial Catalog=Northwind;“ _ & “Integrated Security=true“ Sqlconn.open(),Com

8、mand对象,使用 Command 对象可以访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。 1.用构造函数创建SqlCommand对象,并通过该对象的构造函数参数来设置特定属性值,其语法格式如下:SqlCommand 命令对象名 = new SqlCommand(查询字符串, 连接对象名);SqlCommand com = new SqlCommand(string ,conn);,Command对象,使用 Command 对象可以访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。 Command对象的属性Using connection

9、 As New SqlConnection(connectionString) Dim command As SqlCommand = New SqlCommand() command.Connection = connection command.CommandText = “SalesByCategory“ command.CommandType = CommandType.StoredProcedure,Command对象的方法,ExecuteNonQuery:执行不返回任何行的命令。典型的例子是实现插入、更新和删除。 ExecuteReader:通过Connection对象下达命令至数

10、据源,将数据作为一个 DataReader 对象返回。用于任何返回数据的 SQL 查询; ExecuteScalar:从数据库中返回单独值,例如与特定查询相匹配的记录数,或者数据库功能调用的结果。,ExecuteReader代码,Using connection As New SqlConnection(connectionString) Dim command As New SqlCommand(queryString, connection) connection.Open() Dim reader As SqlDataReader = command.ExecuteReader(),Da

11、taReader 对象,当Command 对象返回结果集时,需要使用DataReader对象来检索数据。DataReader 对象返回一个来自Command 的只读的、只能向前的数据流。DataReader每次只能在内存中保留一行,所以开销非常小。 在与数据库的交互中,要获得数据访问的结果可用两种方法来实现,第一种是通过DataReader对象从数据源中获取数据并进行处理;第二种是通过DataSet对象将数据放置在内存中进行处理。,Using connectionDim command As SqlCommand = New SqlCommand( _“SELECT CategoryID, C

12、ategoryName FROM Categories;“, _connection)connection.Open()Dim reader As SqlDataReader = command.ExecuteReader()If reader.HasRows ThenDo While reader.Read()Console.WriteLine(reader.GetInt32(0) _& vbTab & reader.GetString(1)LoopElseConsole.WriteLine(“No rows found.“)End Ifreader.Close()End Using,Dat

13、aAdapter对象,DataAdapter对象是一个双向通道,用来把数据从数据源中读到一个内存表中,以及把内存中的数据写回到一个数据源中。这两种操作分别称作填充(Fill)和更新(Update)。DataAdapter对象通过Fill方法和Update方法来提供这一桥接器。,Dim adapter As SqlDataAdapter = New SqlDataAdapter( _“SELECT CategoryID, CategoryName FROM dbo.Categories“, _connection)adapter.UpdateCommand = New SqlCommand( _

14、“UPDATE Categories SET CategoryName = CategoryName “ & _“WHERE CategoryID = CategoryID“, connection)adapter.UpdateCommand.Parameters.Add( _“CategoryName“, SqlDbType.NVarChar, 15, “CategoryName“),Dim parameter As SqlParameter = _adapter.UpdateCommand.Parameters.Add( _“CategoryID“, SqlDbType.Int)param

15、eter.SourceColumn = “CategoryID“parameter.SourceVersion = DataRowVersion.OriginalDim categoryTable As New DataTableadapter.Fill(categoryTable),Dim categoryRow As DataRow = categoryTable.Rows(0)categoryRow(“CategoryName“) = “New Beverages“adapter.Update(categoryTable),DataAdapter执行对数据库的操作,1.创建数据库连接对象

16、Connection; 2.创建Select查询语句或Command对象; 3.创建DataAdapter对象; 4.创建DataSet对象; 5.为DataAdapter对象自动生成更新命令; 6.调用DataAdapter对象的Fill()方法填充DataSet对象; 7.对DataTable中的特定记录进行增加、删除、修改 8. 调用DataAdapter对象的Update()方法,将DataTable中的数据变化提交到数据库。 说明:当调用Update方法时,DataAdapter将分析已做出的更改并执行相应的命令(Insert,Update,Delete)。,DataSet,Data

17、Set相当于内存中的数据库,在命名空间System.Data中定义;DataAdapter相当于DataSet和物理数据源之间的桥梁。 在DataSet内部是一个或多个DataTable的集合,DataSet.Tables“表名”可获取数据集中的一个表。 在DataTable 中执行的插入、更新和删除操作并不会自动写回数据库。如果想把更改写回数据库,则需要手动去完成,这个操作由DataAdapter.Update完成。,DataSet与DataAdapter,DataSet是实现ADO.NET断开式连接的核心,它通过DataAdapter从数据源获得数据后就断开了与数据源之间的连接(这一点与前

18、面介绍过的DataReader对象完全不同),此后应用程序所有对数据源的操作(定义约束和关系、添加、删除、修改、查询、排序、统计等等)均转向到DataSet,当所有这些操作完成后可以通过DataAdapter提供的数据源更新方法将修改后的数据写入数据库。,DataSet的组成,创建DataSet,创建DataSet 创建数据集对象的语法格式为: DataSet 数据集对象名 = new DataSet(); 或: DataSet 数据集对象名 = new DataSet(“表名“);,填充DataSet,所谓“填充”是指使用DataAdapter对象通过执行SQL语句从数据源得到的返回结果,使

19、用DataAdapter对象的Fill方法传递给DataSet对象。 其常用语法格式如下所示: Adapter.Fill(ds); 或: Adapter.Fill(ds, tablename);,使用DataSet添加新记录,通过DataSet向数据表添加新记录的一般方法如下: 1) 建立与数据库的连接。 2) 通过DataAdapter对象从数据库中取出需要的数据。 3) 实例化一个SqlCommandBuilder类对象,并为DataAdapter自动生成更新命令。 4) 使用DataAdapter对象的Fill方法填充DataSet。 5) 使用NewRow()方法向DataSet中填充

20、的表对象中添加一个新行。 6) 为新行中各字段赋值 7) 将新行添加到DataSet中填充的表对象中。 8) 调用DataAdapter对象的Update()方法将数据保存到数据库。,使用DataSet删除记录,使用DataSet从填充的表对象中删除行时需要创建一个DataRow对象,并将要删除的行赋值给该对象,而后调用DataRow对象的Delete()方法将该行删除。当然此时的删除仅是针对DataSet对象的,若需从数据库中删除该行,还需要调用DataAdapter对象的Update()方法将删除操作提交到数据库。,使用DataSet修改记录,实际就是在DataSet 数据行上面直接修改数据。创建一个DataRow对象,从表对象中获得需要修改的行并赋给新建的DataRow对象,根据需要修改各列的值(为各字段赋以新值)。最后仍需要调用DataAdapter对象的Update()方法将更新提交到数据库。,一、应用程序向服务器端发出请求,要求获取数据。 二、服务器响应的数据发送到数据集,通过.NET数据集提供程序完成。 三、数据集将数据发送客户端。 四、客户端修改后存储到数据集中。 五、数据集统一将修改后的数据保存到服务器中。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报