首页 > 其他分享 >ADO.NET 结构

ADO.NET 结构

时间:2022-10-12 22:32:30浏览次数:58  
标签:DataReader 数据源 DataSet 使用 ADO NET 数据 结构

Vegas摘自MSDN

ADO.NET 组件

可以使用 ADO.NET 的两个组件来访问和处理数据:

  • .NET Framework 数据提供程序
  • DataSet

.NET Framework 数据提供程序

.NET Framework 数据提供程序是专门为数据处理以及快速地只进、只读访问数据而设计的组件。Connection 对象提供与数据源的连接。Command 对象使您能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。DataReader 从数据源中提供高性能的数据流。最后,DataAdapter 提供连接 DataSet 对象和数据源的桥梁。DataAdapter 使用 Command 对象在数据源中执行 SQL 命令,以便将数据加载到 DataSet 中,并使对 DataSet 中数据的更改与数据源保持一致。

DataSet

ADO.NET DataSet 专门为独立于任何数据源的数据访问而设计。因此,它可以用于多种不同的数据源,用于 XML 数据,或用于管理应用程序本地的数据。DataSet 包含一个或多个 DataTable 对象的集合,这些对象由数据行和数据列以及有关 DataTable 对象中数据的主键、外键、约束和关系信息组成。

下图说明 .NET Framework 数据提供程序与 DataSet 之间的关系。

ADO.NET 结构



选择 DataReader 或 DataSet

在决定应用程序应使用 DataReader(请参见使用 DataReader 检索数据)还是应使用 DataSet(请参见在 ADO.NET 中使用 DataSet)时,应考虑应用程序所需的功能类型。DataSet 用于执行以下功能:

  • 在应用程序中将数据缓存在本地,以便可以对数据进行处理。如果只需要读取查询结果,DataReader 是更好的选择。
  • 在层间或从 XML Web 服务对数据进行远程处理。
  • 与数据进行动态交互,例如绑定到 Windows 窗体控件或组合并关联来自多个源的数据。
  • 对数据执行大量的处理,而不需要与数据源保持打开的连接,从而将该连接释放给其他客户端使用。

如果不需要 DataSet 所提供的功能,则可以使用 DataReader 以只进、只读方式返回数据,从而提高应用程序的性能。虽然 DataAdapter 使用 DataReader 来填充 DataSet 的内容(请参见从 DataAdapter 填充 DataSet),但可以使用 DataReader 来提高性能,因为这样可以节省 DataSet 所使用的内存,并将省去创建 DataSet 并填充其内容所需的处理。

 

 


标签:DataReader,数据源,DataSet,使用,ADO,NET,数据,结构
From: https://blog.51cto.com/amadeus/5751706

相关文章

  • ADO.NET 如何读取 Excel (下)
    应用程序经常需要与Excel进行数据交互,在上一篇文章ADO.NET如何读取Excel(上)​阐述了基于ADO.NET读取Excel的基本方法与技巧。今天这里要介绍是如何动态的读取Excel数据,这......
  • 【NLP】XLnet:GPT和BERT的合体,博采众长,所以更强
    前面介绍过BERT,作为一种非常成功的预训练模型,取得了非常不错的成绩,那么,他还有改进的空间吗?本文介绍BERT的改进版,XLnet。看看它用了什么方法,改进了BERT的哪些弱点。作者&编辑......
  • 【NLP-词向量】从模型结构到损失函数详解word2vec
    上周我们讲到,在进行NNLM训练时,能够得到副产品,词向量。本文介绍一种专门用于词向量制备的方法:word2vec,利用它能够高效的训练出词向量。作者&编辑|小Dream哥1word2vec是什......
  • 【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重
    深度学习开源框架众多,对于开发者来说其中有一个很硬的需求,就是模型结构和权重的可视化。使用过Caffe的同学都因为强大的Netscope可以离线修改实时可视化网络结构而暗爽,那其......
  • 【NLP预训练模型】你finetune BERT的姿势可能不对哦?
    预训练模型BERT是NLP领域如今最大的网红,BERT的预训练过程学习了大量的自然语言中词、句法以及常识等泛领域的知识。因此,在运用BERT到实际的NLP任务中,通常的做法都是基于特定......
  • .Net Core Razor Page添加WebApi
     1、在 Startup.cs的函数 ConfigureServices添加 services.AddControllers();publicvoidConfigureServices(IServiceCollectionservices){......
  • 数据结构第二次上机
    #include<stdio.h>#include<stdlib.h>typedefstructLinkNode{  intdata;  structLinkNode*next;}LinkNode,*LinkList;voidInitLinkList(LinkList&L)/......
  • 19组多分支结构的总结心得
    本周我们学习了关于多分支结构的内容,通过这个分支结构的具体方法,我们可以解决许多我们以前解决不了的问题,我深刻体会到其中的奥妙以及耐人寻味的地方。switch-case与if-els......
  • Python基础 - 序列结构
    对内置的常用数据结构,列表,字典,元组,集合的基本点看书整理.有序序列:列表、元组、字符串无序序列:字典、集合可变序列:列表、字典、集合不可变......
  • 【知识图谱】知识表示:知识图谱如何表示结构化的知识?
    互联网时代,人类在与自然和社会的交互中生产了异常庞大的数据,这些数据中包含了大量描述自然界和人类社会客观规律有用信息。如何将这些信息有效组织起来,进行结构化的存储,就是......