版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库访问技术ADO.NETADO.NET的起源1998年起,因为Web应用程序的窜起,大大改变了许多应用程序的设计方式,传统的数据库连线保存设计法无法适用于此类应用程序,这让ADO应用程序遇到了很大的瓶颈,也让微软开始思考让资料集(Resultset,在ADO中称为Recordset)能够离线化的能力,以及能在用户端创建一个小型数据库的概念,这个概念就是中离线型资料模型(disconnecteddatamodel)的基础,而在ADO的使用情形来看,数据库连线以及资源耗用的情形较严重(像是Server-sidecursor或是Recordset.Open会保持连线状态),在中也改良了这些组件,构成了能够减少数据库连线和资源使用量的功能。XML的使用也是这个版本的重要发展之一。2000年,微软的Microsoft.NET计划开始成形,许多的微软产品都冠上.NET的标签,ADO+也不例外,改名为并包装到.NETFramework类别库中,成为.NET平台中唯一的资料存取组件。ADO.NET简介ADO.NET是一组向.NETFramework程序员公开数据访问服务的类。ADO.NET为创建分布式数据共享应用程序提供了一组丰富的组件。它提供了对关系数据、XML和应用程序数据的访问,因此是.NETFramework中不可缺少的一部分。ADO.NET支持多种开发需求,包括创建由应用程序、工具、语言或Internet浏览器使用的前端数据库客户端和中间层业务对象。ADO.NET简介ADO.NET提供对诸如SQLServer和XML这样的数据源以及通过OLEDB和ODBC公开的数据源的一致访问。共享数据的使用方应用程序可以使用ADO.NET连接到这些数据源,并可以检索、处理和更新其中包含的数据。ADO.NET通过数据处理将数据访问分解为多个可以单独使用或一前一后使用的不连续组件。ADO.NET包含用于连接到数据库、执行命令和检索结果的.NETFramework数据提供程序。这些结果或者被直接处理,放在ADO.NETDataSet对象中以便以特别的方式向用户公开,并与来自多个源的数据组合;或者在层之间传递。DataSet对象也可以独立于.NETFramework数据提供程序,用于管理应用程序本地的数据或源自XML的数据。ADO.NET的结构及组件ADO.NET用于访问和操作数据的两个主要组件是.NETFramework数据提供程序和DataSet。NETFramework数据提供程序.NETFramework数据提供程序是专门为数据操作以及快速、只进、只读访问数据而设计的组件。主要包括Connection、Command、DataReader、DataAdapter四个对象ADO.NET的结构及组件ADO.NETDataSet是专门为独立于任何数据源的数据访问而设计的。因此,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据。DataSet包含一个或多个DataTable对象的集合,这些对象由数据行和数据列以及有关DataTable对象中数据的主键、外键、约束和关系信息组成。ADO.NET的结构及组件ADO.NET数据提供程序SQLServer.NETFramework数据提供程序(System.Data.SqlClient)OLEDB.NETFramework数据提供程序(System.Data.OleDb)ODBC.NETFramework数据提供程序(System.Data.Odbc)Oracle.NETFramework数据提供程序(System.Data.OracleClient)Connection对象Connection对象提供与数据源的连接。要存取数据源内的数据,首先要建立程序和数据源之间的连接。属性(1)ConnectionString:获取或设置用于打开数据库的字符串,包括字符串的内容和数据提供器名称。(2)State:获取连接的当前状态方法(1)Open()方法:用于打开由ConnectionString属性指定的数据源连接(2)Close()方法:关闭数据源连接Connection对象ImportsSystemImportsSystem.DataImportsSystem.Data.SqlClient…Dimsqlconn=newsqlconnnectionSqlconn.connectionStringAsString=_"DataSource=(local);InitialCatalog=Northwind;"_&"IntegratedSecurity=true"Sqlconn.open()Command对象使用Command对象可以访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。1.用构造函数创建SqlCommand对象,并通过该对象的构造函数参数来设置特定属性值,其语法格式如下:SqlCommand命令对象名=newSqlCommand(查询字符串,连接对象名);
SqlCommandcom=newSqlCommand(string,conn);Command对象使用Command对象可以访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。Command对象的属性
UsingconnectionAsNewSqlConnection(connectionString)DimcommandAsSqlCommand=NewSqlCommand()command.Connection=connectioncommand.CommandText="SalesByCategory"command.CommandType=CommandType.StoredProcedureCommand对象的方法ExecuteNonQuery:执行不返回任何行的命令。典型的例子是实现插入、更新和删除。ExecuteReader:通过Connection对象下达命令至数据源,将数据作为一个DataReader对象返回。用于任何返回数据的SQL查询;ExecuteScalar:从数据库中返回单独值,例如与特定查询相匹配的记录数,或者数据库功能调用的结果。ExecuteReader代码UsingconnectionAsNewSqlConnection(connectionString)DimcommandAsNewSqlCommand(queryString,connection)connection.Open()DimreaderAsSqlDataReader=command.ExecuteReader()DataReader对象当Command对象返回结果集时,需要使用DataReader对象来检索数据。DataReader对象返回一个来自Command的只读的、只能向前的数据流。DataReader每次只能在内存中保留一行,所以开销非常小。在与数据库的交互中,要获得数据访问的结果可用两种方法来实现,第一种是通过DataReader对象从数据源中获取数据并进行处理;第二种是通过DataSet对象将数据放置在内存中进行处理。UsingconnectionDimcommandAsSqlCommand=NewSqlCommand(_"SELECTCategoryID,CategoryNameFROMCategories;",_connection)connection.Open()DimreaderAsSqlDataReader=command.ExecuteReader()Ifreader.HasRowsThenDoWhilereader.Read()Console.WriteLine(reader.GetInt32(0)_&vbTab&reader.GetString(1))LoopElseConsole.WriteLine("Norowsfound.")EndIfreader.Close()EndUsingDataAdapter对象DataAdapter对象是一个双向通道,用来把数据从数据源中读到一个内存表中,以及把内存中的数据写回到一个数据源中。这两种操作分别称作填充(Fill)和更新(Update)。DataAdapter对象通过Fill方法和Update方法来提供这一桥接器。DimadapterAsSqlDataAdapter=NewSqlDataAdapter(_"SELECTCategoryID,CategoryNameFROMdbo.Categories",_connection)adapter.UpdateCommand=NewSqlCommand(_"UPDATECategoriesSETCategoryName=@CategoryName"&_"WHERECategoryID=@CategoryID",connection)adapter.UpdateCommand.Parameters.Add(_"@CategoryName",SqlDbType.NVarChar,15,"CategoryName")DimparameterAsSqlParameter=_adapter.UpdateCommand.Parameters.Add(_"@CategoryID",SqlDbType.Int)parameter.SourceColumn="CategoryID"parameter.SourceVersion=DataRowVersion.OriginalDimcategoryTableAsNewDataTableadapter.Fill(categoryTable)DimcategoryRowAsDataRow=categoryTable.Rows(0)categoryRow("CategoryName")="NewBeverages"adapter.Update(categoryTable)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)。DataSetDataSet相当于内存中的数据库,在命名空间System.Data中定义;DataAdapter相当于DataSet和物理数据源之间的桥梁。在DataSet内部是一个或多个DataTable的集合,DataSet.Tables[“表名”]可获取数据集中的一个表。在DataTable中执行的插入、更新和删除操作并不会自动写回数据库。如果想把更改写回数据库,则需要手动去完成,这个操作由DataAdapter.Update完成。DataSet与DataAdapterDataSet是实现ADO.NET断开式连接的核心,它通过DataAdapter从数据源获得数据后就断开了与数据源之间的连接(这一点与前面介绍过的DataReader对象完全不同),此后应用程序所有对数据源的操作(定义约束和关系、添加、删除、修改、查询、排序、统计等等)均转向到DataSet,当所有这些操作完成后可以通过DataAdapter提供的数据源更新方法将修改后的数据写入数据库。DataSet的组成创建DataSet创建DataSet创建数据集对象的语法格式为:DataSet数据集对象名=newDataSet();或:DataSet数据集对象名=newDataSet("表名");填充DataSet所谓“填充”是指使用DataAdapter对象通过执行SQL语句从数据源得到的返回结果,使用DataAdapter对象的Fill方法传递给DataSet对象。其常用语法格式如下所示:Adapter.Fill(ds);或:Adapter.Fill(ds,tablename);使用DataSet添加新记录通过DataSet向数据表添加新记录的一般方法如下:1)建立与数据库的连接。2)通过DataAd
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子商务平台的用户信息安全计划
- 加强会计职业道德建设的计划
- 塑变陶瓷:园艺制造与市场-探索园艺陶瓷的生产技术与市场规模
- 服务商团购合作协议书范文范本
- 大理石工厂合作协议书范文模板
- 全新出租车急售转让协议书范文
- 二手车卖方代签协议书范文模板
- 第三章工程经济分析的基本指标及方法可行性研究与项
- 匆匆教育课件教学课件
- 2023-2024学年四川省成都市经开区实验中学高三联合调研考试数学试题试卷
- 中级银行从业资格之中级个人贷款通关题库(附带答案)
- 学校(幼儿园)食品安全相关人员责任清单
- 汽车吊吊装安全技术交底
- 湖北省武汉市部分学校2022-2023学年高一年级上册期中联考数学试题(学生版+解析)
- 小学中队活动记录
- 金融学基础(第二版)课件:信用和金融工具
- 主题一:自然之美 第2课《 重回侏罗纪-寻踪自贡恐龙博物馆》 课件
- 医疗机构处方审核规范解读
- DB32/T 4504-2023 扬州鹅种鹅全季节繁殖技术规程
- 2024年餐厅服务员(三级)职业鉴定考试题库(浓缩500题)
- 2024年高考体育单招考试政治重点知识点归纳总结(复习必背)
评论
0/150
提交评论