数据库访问技术(ADO_NET)..
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Command对象的方法
ExecuteNonQuery:执行不返回任何行的命 令。典型的例子是实现插入、更新和删除。 ExecuteReader:通过Connection对象下达 命令至数据源,将数据作为一个 DataReader 对象返回。用于任何返回数据 的 SQL 查询; ExecuteScalar:从数据库中返回单独值, 例如与特定查询相匹配的记录数,或者数 据库功能调用的结果。
Dim parameter As SqlParameter = _
adapter.UpdateCommand.Parameters.Add( _ "@CategoryID", SqlDbType.Int) parameter.SourceColumn = "CategoryID" parameter.SourceVersion = DataRowVersion.Original
DataSet
DataSet相当于内存中的数据库,在命名空间 System.Data中定义;DataAdapter相当于DataSet 和物理数据源之间的桥梁。 在DataSet内部是一个或多个DataTable的集合, DataSet.Tables[“表名”]可获取数据集中的一个 表。 在DataTable 中执行的插入、更新和删除操作并 不会自动写回数据库。如果想把更改写回数据库, 则需要手动去完成,这个操作由 DataAdapter.Update完成。
Dim adapter As SqlDataAdapter = New SqlDataAdapter( _ "SELECT CategoryID, CategoryName FROM dbo.Categories", _ connection)
adapter.UpdateCommand = New SqlCommand( _ "UPDATE Categories SET CategoryName = @CategoryName " & _ "WHERE CategoryID = @CategoryID", connection) adapter.UpdateCommand.Parameters.Add( _ "@CategoryName", SqlDbType.NVarChar, 15, "CategoryName")
的结构及组件
数据提供程序
SQL Server .NET Framework 数据提供程序 (System.Data.SqlClient) OLE DB .NET Framework 数据提供程序 (System.Data.OleDb) ODBC .NET Framework 数据提供程序 (System.Data.Odbc) Oracle .NET Framework 数据提供程序 (System.Data.OracleClient)
的结构及组件
用于访问和操作数据的两个主要 组件是 .NET Framework 数据提供程序和 DataSet。
NET Framework 数据提供程序
.NET Framework 数据提供程序是专门为数据操 作以及快速、只进、只读访问数据而设计的组件。 主要包括Connection、 Command 、 DataReader 、 DataAdapter四个对象
简介
是一组向 .NET Framework 程序 员公开数据访问服务的类。 为创 建分布式数据共享应用程序提供了一组丰 富的组件。 它提供了对关系数据、XML 和 应用程序数据的访问,因此是 .NET Framework 中不可缺少的一部分。 支持多种开发需求,包括创建由 应用程序、工具、语言或 Internet 浏览器 使用的前端数据库客户端和中间层业务对 象。
reader.Close() End Using
DataAdapter对象
DataAdapter对象是一个双向通道,用来把 数据从数据源中读到一个内存表中,以及 把内存中的数据写回到一个数据源中。这 两种操作分别称作填充(Fill)和更新 (Update)。DataAdapter对象通过Fill方法 和Update方法来提供这一桥接器。
DataAdapter执行对数据库的操作
1.创建数据库连接对象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)。
数据库访问技术
的起源
1998年起,因为Web应用程序的窜起,大大改变了许多应 用程序的设计方式,传统的数据库连线保存设计法无法适 用于此类应用程序,这让ADO应用程序遇到了很大的瓶颈, 也让微软开始思考让资料集(Resultset,在ADO中称为 Recordset)能够离线化的能力,以及能在用户端创建一 个小型数据库的概念,这个概念就是中离线型资 料模型 (disconnected data model) 的基础,而在ADO 的使用情形来看,数据库连线以及资源耗用的情形较严重 (像是 Server-side cursor 或是 Recordset.Open 会保持连 线状态),在中也改良了这些组件,构成了能够 减少数据库连线和资源使用量的功能。XML的使用也是这 个版本的重要发展之一。2000年,微软的Microsoft .NET 计划开始成形,许多的微软产品都冠上.NET的标签, ADO+也不例外,改名为并包装到.NET Framework类别库中,成为.NET平台中唯一的资料存取组 件。
Command对象
使用 Command 对象可以访问用于返回数据、修 改数据、运行存储过程以及发送或检索参数信息 的数据库命令。 1.用构造函数创建SqlCommand对象,并通过该对 象的构造函数参数来设置特定属性值,其语法格 式如下: SqlCommand 命令对象名 = new SqlCommand(查询字符串, 连接对象名); SqlCommand com = new SqlCommand(string ,conn);
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()
Dim categoryTable As New DataTable adapter.Fill(categoryTable)
Dim categoryRow As DataRow = categoryTable.Rows(0) categoryRow("CategoryName") = "New Beverages" adapter.Update(categoryTable)
DataReader 对象
当Command 对象返回结果集时,需要使用 DataReader对象来检索数据。DataReader 对象 返回一个来自Command 的只读的、只能向前的 数据流。DataReader每次只能在内存中保留一行, 所以开销非常小。 在与数据库的交互中,要获得数据访问的结果可 用两种方法来实现,第一种是通过DataReader对 象从数据源中获取数据并进行处理;第二种是通 过DataSet对象将数据放置在内存中进行处理。
的结构及组件
DataSet 是专门为独立于任何数 据源的数据访问而设计的。 因此,它可以 用于多种不同的数据源,用于 XML 数据, 或用于管理应用程序本地的数据。 DataSet 包含一个或多个 DataTable 对象的集合, 这些对象由数据行和数据列以及有关 DataTable 对象中数据的主键、外键、约束 和关系信息组成。
Connection对象
Connection对象提供与数据源的连接。要存取数据源内的 数据,首先要建立程序和数据源之间的连接。 属性 (1)ConnectionString:获取或设置用于打开数据库的字符 串,包括字符串的内容和数据提供器名称。 (2)State:获取连接的当前状态
方法 (1)Open()方法:用于打开由ConnectionString属性指定 的数据源连接 (2)Close()方法:关闭数据源连接
Using connection Dim command As SqlCommand = New SqlCommand( _ "SELECT CategoryID, CategoryName FROM Categories;", _ connection) connection.Open() Dim reader As SqlDataReader = command.ExecuteReader() If reader.HasRows Then Do While reader.Read() Console.WriteLine(reader.GetInt32(0) _ & vbTab & reader.GetString(1)) Loop Else Console.WriteLine("No rows found.") End If
简介
提供对诸如 SQL Server 和 XML 这样的数据源 以及通过 OLE DB 和 ODBC 公开的数据源的一致访问。 共享数据的使用方应用程序可以使用 连接到这 些数据源,并可以检索、处理和更新其中包含的数据。
通过数据处理将数据访问分解为多个可以单独 使用或一前一后使用的不连续组件。 包含用于 连接到数据库、执行命令和检索结果的 .NET Framework 数据提供程序。 这些结果或者被直接处理,放在 DataSet 对象中以便以特别的方式向用户公开, 并与来自多个源的数据组合;或者在层之间传递。 DataSet 对象也可以独立于 .NET Framework 数据提供程 序,用于管理应用程序本地的数据或源自 XML 的数据。
ExecuteReader代码
Using connection As New SqlConnection(connectionString) Dim command As New SqlCommand(queryString, connection) connection.Open() Dim reader As SqlDataReader = command.ExecuteReader()CFra bibliotekmmand对象
使用 Command 对象可以访问用于返回数据、修 改数据、运行存储过程以及发送或检索参数信息 的数据库命令。
Command对象的属性 Using connection As New SqlConnection(connectionString) Dim command As SqlCommand = New SqlCommand() command.Connection = connection mandText = "SalesByCategory" mandType = CommandType.StoredProcedure