ado.net

时间:2024-06-14 22:29:43编辑:小松

ADO.NET到底是什么啊?

ADO.NET的名称起源于ADO(ActiveX Data Objects),这是一个广泛的类组,用于在以往的Microsoft技术中访问数据.之所以使用ADO.NET名称,是因为Microsoft希望表明,这是在.NET编程环境中优先使用的数据访问接口.
它提供了平台互用性和可伸缩的数据访问。ADO.NET增强了对非连接编程模式的支持,并支持RICH XML。由于传送的数据都是XML格式的,因此任何能够读取XML格式的应用程序都可以进行数据处理。事实上,接受数据的组件不一定要是ADO .NET组件,它可以是基于一个Microsoft Visual Studio的解决方案,也可以是任何运行在其它平台上的任何应用程序。   ADO.NET是一组用于和数据源进行交互的面向对象类库。通常情况下,数据源是数据库,但它同样也能够是文本文件、Excel表格或者XML文件。   
ADO.NET允许和不同类型的数据源以及数据库进行交互。然而并没有与此相关的一系列类来完成这样的工作。因为不同的数据源采用不同的协议,所以对于不同的数据源必须采用相应的协议。一些老式的数据源使用ODBC协议,许多新的数据源使用OleDb协议,并且现在还不断出现更多的数据源,这些数据源都可以通过.NET的ADO.NET类库来进行连接。   
ADO.NET提供与数据源进行交互的相关的公共方法,但是对于不同的数据源采用一组不同的类库。这些类库称为Data Providers,并且通常是以与之交互的协议和数据源的类型来命名的。


[create_time]2011-06-23 08:22:42[/create_time]2011-09-17 14:17:43[finished_time]4[reply_count]0[alue_good]47507426[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.ab5066c8.ZsEfaROCFKwhSwA6nUWiSw.jpg?time=3095&tieba_portrait_time=3095[avatar]TA获得超过307个赞[slogan]这个人很懒,什么都没留下![intro]859[view_count]

ADO和ADO.NET有什么不同?

1、一些ADO中常见的类型比如RecordSet在ADO.NET中已经没有了,而且在ADO.NET中也新增了许多在传统ADO中找不到的直接对应的新类型(如数据适配器);2、传统的ADO主要针对紧密连接的客户端/服务器系统,而ADO.NET考虑到了断开式连接应用并且引进了DataSet,它代表任意数量的关联表每个表都包含了行和列的集合的本地副本,使用DataSet的话,在断开数据库连接的情况下调用程序集处理和更细它的内容,然后使用关联的数据适配器将修改后的数据提交回数据库3、传统的ADO和ADO.NET的一个显著区别是后者全面支持XML数据呈现。其实从数据库中获得的数据默认被序列化为XML,假设XMl通过标准的HTTP在层之间传输,ADO.NET就能突破防火墙的限制。4、两者之间最根本的区别在于ADO.NET是托管代码库


[create_time]2016-11-22 15:13:52[/create_time]2011-08-08 13:36:38[finished_time]1[reply_count]17[alue_good]全栈达人老Y[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.1e00a79d.NWIyeioBOi-USPEi2bSdIw.jpg?time=4840&tieba_portrait_time=4840[avatar]TA获得超过1340个赞[slogan]这个人很懒,什么都没留下![intro]4786[view_count]

ado.net是什么意思?

ADO.NET是一组用于和数据源进行交互的面向对象类库:一:通常情况下,数据源是数据库,但它同样也能够是文本文件、Excel表格或者XML文件。 二:ADO.NET允许和不同类型的数据源以及数据库进行交互。然而并没有与此相关的一系列类来完成这样的工作。三:因为不同的数据源采用不同的协议,所以对于不同的数据源必须采用相应的协议。一些老式的数据源使用ODBC协议,许多新的数据源使用OleDb协议,并且现在还不断出现更多的数据源。四:这些数据源都可以通过.NET的ADO.NET类库来进行连接。1、微软公司的ADO(ActiveX Data Objects)是一个用于访问数据源的COM组件。2、它提供了编程语言和统一数据访问方式OLE DB的一个中间层。3、允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。4、访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象来执行。

[create_time]2019-11-08 14:46:19[/create_time]2017-12-16 06:46:50[finished_time]1[reply_count]1[alue_good]眉目间温软呢[uname]https://gips0.baidu.com/it/u=924465177,3064924620&fm=3012&app=3012&autime=1689245778&size=b200,200[avatar]TA获得超过1930个赞[slogan]这个人很懒,什么都没留下![intro]1289[view_count]

Ado.net访问数据库的方法和步骤

  不论从语法来看 还是从风格和设计目标来看 ADO NET都和ADO有显著的不同 在ASP中通过ADO访问数据库 一般要通过以下四个步骤    创建一个到数据库的链路 即ADO Connection    查询一个数据集合 即执行SQL 产生一个Recordset    对数据集合进行需要的操作    关闭数据链路   在ADO NET里 这些步骤有很大的变化 ADO NET的最重要概念之一是DataSet DataSet是不依赖于数据库的独立数据集合 所谓独立 就是 即使断开数据链路 或者关闭数据库 DataSet依然是可用的 如果你在ASP里面使用过非连接记录集合(Connectionless Recordset) 那么DataSet就是这种技术的最彻底的替代品   有了DataSet 那么 ADO NET访问数据库的步骤就相应地改变了   ◆创建一个数据库链路   ◆请求一个记录集合   ◆把记录集合暂存到DataSet   ◆如果需要 返回第 步 (DataSet可以容纳多个数据集合)   ◆关闭数据库链路   ◆在DataSet上做所需要的操作 lishixinzhi/Article/program/net/201311/15216


[create_time]2022-10-28 20:09:15[/create_time]2022-11-10 07:13:45[finished_time]1[reply_count]0[alue_good]世纪网络17[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.486ca09d.jZ691Jzdj5pkPiv7Z8Tryg.jpg?time=710&tieba_portrait_time=710[avatar]TA获得超过4819个赞[slogan]这个人很懒,什么都没留下![intro]21[view_count]

浅谈ADO.NET中的五个主要对象

  ADO NET 对象模型中有五个主要的组件 分别是Connection 对象 Command 对象 DataSetCommand DataSet 以及DataReader 这些组件中 负责建立联机和数据操作的部分   我们称为数据操作组件(Managed Providers) 分别由Connection 对象 Command 对象 DataSetCommand 对象以及DataReader 对象所组成 数据操作组件最主要是当作DataSet 对象以及数据源之间的桥梁 负责将数据源中的数据取出后植入DataSet 对象中 以及将数据存回数据源的工作    Connection对象   Connection 对象主要是开启程序和数据库之间的连结 没有利用连结对象将数据库打开 是无法从数据库中取得数据的 这个物件在ADO NET 的最底层 我们可以自己产生这个对象 或是由其它的对象自动产生    Command对象   Command 对象主要可以用来对数据库发出一些指令 例如可以对数据库下达查询 新增 修改 删除数据等指令 以及呼叫存在数据库中的预存程序等 这个对象是架构在Connection 对象上 也就是Command 对象是透过连结到数据源的Connection 对象来下命令的 所以Connection连结到哪个数据库 Command 对象的命令就下到哪里    DataSetCommand对象   DataSetCommand 对象主要是在数据源以及DataSet 之间执行数据传输的工作 它可以透过   Command 对象下达命令后 并将取得的数据放入DataSet 对象中 这个对象是架构在Command对象上 并提供了许多配合DataSet 使用的功能 在Beta 版中DataSetCommand 物件会更名为DataAdapter    DataSet对象   DataSet 这个对象可以视为一个暂存区(Cache) 可以把从数据库中所查询到的数据保留起来 甚至可以将整个数据库显示出来 DataSet 的能力不只是可以储存多个Table 还可以透过DataSetCommand 对象取得一些例如主键等的数据表结构 并可以记录数据表间的关联   DataSet 对象可以说是ADO NET 中重量级的对象 这个对象架构在DataSetCommand 对象上 本身 不具备和数据源沟通的能力 也就是说我们是将DataSetCommand 对象当做DataSet 对象以及数据源间传输数据的桥梁   DataReader对象   当我们只需要循序的读取数据而不需要其它操作时 可以使用DataReader 对象 DataReader   对象只是一次一笔向下循序地读取数据源中的数据 不作其它的操作 因为DataReader 在读取数据的时候限制了每次只读取一笔 而且只能只读 所以使用起来不但节省资源而且效率很好 此外 因为不用把数据全部传回 故可以降低网络的负载    ADO NET 的数据操作组件(Managed Providers)   ADO NET 的数据存取和之前的版本不一样 前版的ADO 存取数据的方式只有一种 那就是透过OLE DB 来存取数据 而现在的ADO NET 则分为两种 一种是直接存取MS SQL Server 中的数据 另一种是透过OLE DB 来存取其它数据库中的数据 前面我们提过 要存取数据源中的数据 要透过数据操控组件 这个数据操作组件就是Connection 对象 Command 对象 DataSetCommand 对象以及DataReader 对象 由于我们可以选择透过OLE DB 和资料源联机 或是和MS SQL Server 直接联机 所以 ASP NET 提供了两组数据操作组件 分别为ADO 数据操作组件以及SQL 数据操作组件   每组数据操作组件内都有Connection 对象 Command 对象 DataSetCommand 对象及 lishixinzhi/Article/program/net/201311/15600


[create_time]2022-09-30 19:23:35[/create_time]2022-10-13 11:18:43[finished_time]1[reply_count]0[alue_good]一袭可爱风1718[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.5395ef26.n9N8duaooP2iWjvaRSNI0A.jpg?time=4591&tieba_portrait_time=4591[avatar]TA获得超过9787个赞[slogan]这个人很懒,什么都没留下![intro]19[view_count]

ADO.NET中的五个主要对象

  Connection 物件 Connection 对象主要是开启程序和数据库之间的连结 没有利用连结对象将数据库打开 是无法从数据库中取得数据的 这个物件在ADO NET 的最底层 我们可以自己产生这个对象 或是由其它的对象自动产生   Command 物件 Command 对象主要可以用来对数据库发出一些指令 例如可以对数据库下达查询 新增 修改 删除数据等指令 以及呼叫存在数据库中的预存程序等 这个对象是架构在Connection 对象上 也就是Command 对象是透过连结到数据源   DataAdapter 物件 DataSetCommand 对象主要是在数据源以及DataSet 之间执行数据传输的工作 它可以透过Command 对象下达命令后 并将取得的数据放入DataSet 对象中 这个对象是架构在Command对象上 并提供了许多配合DataSet 使用的功能 在Beta 版中DataSetCommand 物件会更名为DataAdapter   DataSet 物件 DataSet 这个对象可以视为一个暂存区(Cache) 可以把从数据库中所查询到的数据保留起来 甚至可以将整个数据库显示出来 DataSet 的能力不只是可以储存多个Table 而已 还可以透过DataSetCommand 对象取得一些例如主键等的数据表结构 并可以记录数据表间的关联 DataSet 对象可以说是ADO NET 中重量级的对象 这个对象架构在DataSetCommand 对象上 本身不具备和数据源沟通的能力 也就是说我们是将DataSetCommand 对象当做DataSet 对象以及数据源间传输数据的桥梁   DataReader 物件 当我们只需要循序的读取数据而不需要其它操作时 可以使用DataReader 对象 DataReader对象只是一次一笔向下循序的读取数据源中的数据 而且这些数据是只读的 并不允许作其它的操作 因为DataReader 在读取数据的时候限制了每次只读取一笔 而且只能只读 所以使用起来不但节省资源而且效率很好 使用DataReader 对象除了效率较好之外 因为不用把数据全部传回 故可以降低网络的负载   ADO NET 使用Connection 对象来连接数据库 使用Command 或DataAdapter对象来执行SQL语句 并将执行的结果返回给DataReader 或 DataAdapter 然后再使用取得的DataReader 或DataAdapter 对象操作数据结果 Connection 对象 建立Connection 对象的代码 OLEDB: OleDbConnection MyConnection=new OleDbConnection(); SQL: SqlConnection MyConnection=new SqlConnection(); ◆他们的ConnectionString属性 获取或设置连接语句 MyConnection ConnectionString= server=(local);database=pubs;uid=sa;pwd= ; ◆DataBase 属性 获取当前打开数据库 ◆DataSource属性 获取打开数据库的连接实例 ◆Open 方法 打开连接 ◆Close 方法 关闭连接 Command与DataReader 对象 Command 对象中包含了提交数据库系统的访问信息 OleDbCommand 与SqlCommand 对象 它们的基本对象和操作方法是相同的 在此介绍OleDbCommand的用法 SqlCommand的用法类推即可 如 OleDbCommand myComm = new OleDbCommand(strQuery myConnection); 第一个参数是sql语句或存储过程名 第二个参数是前面的Connection 对象的实例 Command 对象的只要的属性和方法有 ◆Connection 属性 设置或获取 Command对象使用的Connection 对象实例 ◆CommandText 属性 设置或获取需要执行的sql语句或存储过程名 ◆CommandType 属性 设置或获取执行语句的类型 它有 个属性值:StoredProceduce(存储过程) TableDirect Text(标准的SQL语句) 默认是Text ◆Parameters 属性 取得参数值集合 ◆ExecuteReader 方法 执行CommandText指定的SQL语句或存储过程名 返回值类型为DataReader ◆ExecuteNonQuery 方法 与ExecuteReader 功能相同 只是返回值为执行sql语句或存储过程受影响的记录行数 DataReader 的主要属性和方法有 ◆FieldCount 属性 显示当前数据记录的字段总和 ◆IsClosed 属性 判断DataReader 对象是否已经关闭 ◆Close 方法 关闭DataReader 对象 ◆GetString方法 以String类型返回指定列中的值 ◆Getvalue 方法 以自身的类型返回指定列中的值 ◆Getvalues 方法 返回当前记录所有字段的集合 ◆Read 方法 将 光标 指向DataReader对象的下一记录 Sql连接实例 void Page_Load(Object sender EventArgs e) { SqlConnection Conn=new SqlConnection(); Conn ConnectionString= server=(local);database=pubs;uid=sa;pwd= ; Conn Open(); SqlCommand Comm=new SqlCommand( select * from Authors Conn); SqlDataReader dr=Comm ExecuteReader(); dg DataSource=dr; dg DataBind(); Conn Close(); } Aeccess 数据库连接实例 (OleDbCommand 和 OleDbDataReader 使用实例) OleDbDataReader dr; public void Page_Load(Object src EventArgs e) { string myConnstring= provider=Microsoft Jet OLEDB ; Data Source= +Server MapPath( )+ \\DataBase\\db mdb; ; string strSel= Select * from BookMark ; OleDbConnection myConn= new OleDbConnection (myConnstring); OleDbCommand myComm=new OleDbCommand(strSel myConn); myComm Connection Open(); dr=myComm ExecuteReader(); dg DataSource=dr; dg DataBind(); myConn Close(); } ++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++    DataSet 与DataAdapter DataReader 对象只能实现对数据的读取 不能完成其他的操作 lishixinzhi/Article/program/net/201311/12461


[create_time]2022-10-13 10:06:28[/create_time]2022-10-22 22:07:47[finished_time]1[reply_count]0[alue_good]温屿17[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.f2ab3c6b.EGWNOK5JoOudI3wwHvt0TA.jpg?time=4578&tieba_portrait_time=4578[avatar]TA获得超过9484个赞[slogan]这个人很懒,什么都没留下![intro]26[view_count]

ADO.NET实体数据模型讲解

  ADO.NET是。NET与数据库互操作的核心,而ADO.NET实体数据库则增强了。NET应用程序与数据库的互联能力,通过ADO.NET实体数据模型我们可以很方便的与底层数据库进行强类型的数据互操作。大大的方便了设计人员,从而也提高了数据库操作的安全性。
最近在使用到Silverlight的领域数据服务时遇到一个很特别的问题[在应用程序中的结果和数据库的结果不一样],经过反复的试验,终于找到了问题的根源,那就是ADO.NET实体数据模型依赖于实体键,它的查询会生成实体键的唯一结果集。
  现在来看看具体的操作过程和处理方式:
  为了对数据库的表进行操作,在数据库的视图中建立了一个连接两个原子表的
vw_DesksAndUsers
的视图,这个视图旨在为了连接已存在的User表和Desk的数据,于是我做了如下的T-SQL的视图,如下所示:
  在SQL
Server
2008中得到的查询结果如下:
  也就是说得到了预期的结果,[这一步很成功].接下来进行第二步。
  第二步:新建一个Silverlight商业应用程序SilverlightDomainDb,在生成的项目中会支持WCF
RIA服务。这是对Silverlight领域服务的支持所必须的。
  第三步:在Web项目中添加一个ADO.NET实体数据模型的新项,在向导中选择相应的数据库连接和数据表、视图及存储过程等,完成以后会生成相应的实体数据类型和上下文,并得到。edmx的模型图。如下所示:
  根据Visual
Studio
2010的提示,它为我们生成了两个实体键:DeskId,IsPlaying(这是Desk表中的两个字段);现在重新生成项目。
  第四步:根据实体模型添加Web领域服务项。(在这一步需要添加相应的表和元数据信息)
  第五步:Silverlight项目中将数据源所在vw_DesksAndUsers
的Datagrid拖到Home.xaml中,完成、调试。并没有得到上面的结果,而是生成了如下的Datagrid:
  经过仔细的观察,才发现原来是ADO.NET实体数据模型中的结果集依赖于实体键,也就是说Silverlight领域服务会根据实体键的唯一生成查询的结果集,于是就产生了上面的以DeskId为唯一键的数据。
  处理:
  根据以上的分析,要得到预期的结果,必须设置合适的实体键,为了不至于影响到底层的SQL数据库,我们只需要修改。edmx模型图中的的实体键即可(点击右键选中或不选中"实体键"):
  现在重新生成项目并运行程序,程序得到了预期的结果。
  Silverlight商业应用程序作为一个专为数据显示而生的模板,为数据库的呈现提供了友好的界面,由于其优化的数据库的处理方式使得我们在使用时不得不考虑一些它们之间的细微差别[由于在Visual
Studio中没能看到有LINQ生成的T-SQL查询语句,所以我也只是提供了一个简单的解决方案而已],我想其深层的原因在于LINQ查询中生成的T-SQL语句与数据库中的T-SQL语句不同而产生。


[create_time]2019-03-30 09:44:02[/create_time]2018-08-12 03:18:27[finished_time]1[reply_count]0[alue_good]明蕊暨子爱[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.f753784c.JWg_6np0ku_PiYt4y6ewzw.jpg?time=10702&tieba_portrait_time=10702[avatar]TA获得超过3995个赞[slogan]这个人很懒,什么都没留下![intro]37[view_count]

ADO.NET的作用

它提供了平台互用性和可伸缩的数据访问,ADO .NET增强了对非连接编程模式的支持,并支持RICH XML。由于传送的数据都是XML格式的,因此任何能够读取XML格式的应用程序都可以进行数据处理。事实上,接受数据的组件不一定要是ADO .NET组件,它可以是基于一个Microsoft Visual Studio的解决方案,也可以是任何运行在其它平台上的任何应用程序。ado.net是一组用于和数据源进行交互的面向对象类库。通常情况下,数据源是数据库,但它同样也能够是文本文件、Excel表格或者XML文件。ado.net允许和不同类型的数据源以及数据库进行交互。然而并没有与此相关的一系列类来完成这样的工作。因为不同的数据源采用不同的协议,所以对于不同的数据源必须采用相应的协议。一些老式的数据源使用ODBC协议,许多新的数据源使用OleDb协议,并且现在还不断出现更多的数据源,这些数据源都可以通过NET的ADO .NET类库来进行连接。ado.net提供与数据源进行交互的相关的公共方法,但是对于不同的数据源采用一组不同的类库。这些类库称为Data Providers,并且通常是以与之交互的协议和数据源的类型来命名的。 ado.net是与数据源交互的.NET技术。有许多的Data Providers,它将允许与不同的数据源交流――取决于它们所使用的协议或者数据库。然而无论使用什么样的Data Provider,开发人员将使用相似的对象与数据源进行交互。SqlConnection对象管理与数据源的连接。SqlCommand对象允许开发人员与数据源交流并发送命令给它。为了对进行快速的只“向前”地读取数据,使用SqlDataReader。如果想使用断开数据,使用DataSet并实现能进行读取或者写入数据源的SqlDataAdapter。

[create_time]2016-05-12 17:52:05[/create_time]2016-05-27 13:18:03[finished_time]1[reply_count]1[alue_good]手机用户96894[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.22e2dfc5.AyEtak9kI_7QBDTj7QnYQg.jpg?time=3669&tieba_portrait_time=3669[avatar]TA获得超过136个赞[slogan]这个人很懒,什么都没留下![intro]1207[view_count]

上一篇:serv u

下一篇:家庭保卫战