关于DataSet与Strongly typed DataSet几点思考

DataSet可以把看成一个数据库,也可以看成数据集。而Strongly typed DataSet从DataSet继承而来,并扩展了属性与方法。

很多人一直认为Strongly typed DataSet效率一定比DataSet高。哪也未必。

你可以填充一数据集,但是填充的时候不要超过100行,循环100或者1000次试试。就知道哪个效率更高。

哪为什么Strongly typed DataSet在填充方面效率没有比DataSet高呢。大家可以看看,Strongly typed DataSet不仅需要构造DataSet,而且还要构造,自动生成的许多代码。这是它还不够简洁,所以它在填充方面速度并不快。

因为我们在使用Strongly typed DataSet时,是使用的属性去访问,而在属性访问的时候,其本质是通过索引访问。(这个在博客园已经有人论证过了。)所以就有人一直认为强类型的DataSet比DataSet速度快。

Strongly typed DataSet的缺点已经说了。哪如何构造我们所需要的DataSet? ^-^

其实我们并不怕消耗内存,就怕消耗在内存的东西不再使用。其实可以创建一个对象池来管理所构造的Strongly typed DataSet,这样将它缓存。效率提高了2-10倍。

但是对于一个追求简洁的程序来说,虽然它已经是个非常不错的解决方案,但是我们还可以使用其它方案,提高代码的简洁。

相信Duwamish大家都看过,它使用的是DataSet,但是它并不是强类型化。但是执行效率仍然很高(因为我们的数据量不会太大)。如果大家对它的访问通过索引的,哪执行效率将会更高,这是我推荐的。因为是自定义的,所以足够灵活。而不会像Strongly typed DataSet哪样。不过你也可以将Strongly typed DataSet做成像Duwamish中的数据类。

如果从可维护性方面,哪Strongly typed DataSet可能会好些,但是如果代码写得好,也不见得使用类似Duwamish中的DataSet会差。而且我觉得可能还会更好些,只要大家对它进行扩展就行了。

基类DataSet这个没什么好说的,大家都用得比我还熟。^-^

OVER!

转载于:https://www.cnblogs.com/yi/archive/2006/06/16/427735.html

关于DataSet与Strongly typed DataSet几点思考(原创)相关推荐

  1. 认识并测量Typed DataSet

    认识并测量Typed DataSet Truly 2005-08-05 下载本文的源码(C#) - 17k 下载本文的源码(VB) - 15k 简介 强类型DataSet 强类型DataSet是从Da ...

  2. dataset存入mysql_将dataset写入数据库

    最近在将excel中的文件导入到数据库中,用程序进行编写,由于数据量较大所以速度很慢,后来采用了SqlBulkCopy类,解决了速度的问题,我就insert语句,sqldataadapter.upda ...

  3. e.target.dataset和e.currentTarget.dataset

    作用: e.target.dataset与e.currentTarget.dataset的作用:获取标签中定义的值,定义方法 data-*=某个值 区别: e.target.dataset是指获取当前 ...

  4. Typed DataSet的批量操作优化

    通过vs自动生成的强类型dataset代码,我截取看了一段自动生成的代码 //以下代码是我自定义了一段update 操作vs自动生成的 public virtual int ResetErrortim ...

  5. 机器学习的训练数据(Training Dataset)、测试数据(Testing Dataset)和验证数据(Validation Dataset)

    三者的意义 - 训练数据:用来训练模型的数据 - 验证数据:用来检验模型准确率 - 测试数据:再一次确认验证数据集中的模型是好的模型. 一般步骤: 测试数据集和验证数据的数据一定不能用来训练,否则会出 ...

  6. 将批注用于类型化 DataSet (摘自MSDN)

    批注使您能够在不修改基础架构的情况下修改类型化 DataSet 中元素的名称.如果修改基础架构中元素的名称,则会使类型化 DataSet 引用不存在于数据源中的对象,并且会丢失对存在于数据源中的对象的 ...

  7. [原创] 如何追踪每一笔记录的来龙去脉:一个完整的Audit Logging解决方案—Part I...

    一.提出问题 在开发一个企业级 应用的时候,尤其在一个涉及到敏感数据的应用,比如财务系统.物流系统,我们往往有这样的需求:对于数据库中每一笔数据的添加.修改和删除,都需要有一个明确的日志,以便我们可以 ...

  8. 设计数据层组件并在层间传递数据

    Angela Crocker.Andy Olsen 和 Edward Jezierski Microsoft Corporation 2002年8月 适用于:     Microsoft® .NET ...

  9. MS-DOS信息英汉对照 计算机英语强化

    词汇 释义 abort 中止 abstract class 抽象类 accelerator 快捷键 accelerator mapping 快捷键映射 accelerator table 快捷键对应表 ...

  10. .Net常用术语汇总

    Source Translation abort 中止 abstract class 抽象类 accelerator 快捷键 accelerator mapping 快捷键映射 accelerator ...

最新文章

  1. 外部电源、锂电池供电自动切换并自动给电池充电的电路
  2. rust(28)-具名结构体
  3. c#通过HttpClient来调用Web Api接口
  4. cuDNN编写卷积实例
  5. LoaderManager使用具体解释(四)---实例:AppListLoader
  6. 计算机组成原理基本概念,《计算机组成原理》基本概念.doc
  7. Android反编译锁机文件
  8. Android集成百度语音识别
  9. 森林防火三维电子沙盘指挥系统
  10. 地图的电子围栏功能的技术选型
  11. Python可以做什么?
  12. git pull 是到工作区还是暂存区_我把git想简单了
  13. asp 设置table 间距_设置table表格
  14. JavaScript中如何用函数求任意两数之和?
  15. JSP内置对象使用大全
  16. C# WinForm开发框架
  17. matlab的数值微分,Matlab实现数值微分
  18. php查询信息 wordpress插件,请求PHP大神协助修改一个WordPress插件
  19. 个人常用linux命令归纳(5)
  20. 2015年CVTE校园招聘--Web后台服务开发工程师笔试题目及参考答案

热门文章

  1. 数据库新手常犯的5个错误
  2. 牛客网 暑期ACM多校训练营(第二场)D.money-贪心 or 动态规划
  3. 一道关于CSS选择器优先级的题
  4. [LeetCode] Construct Binary Tree from Preorder and Inorder Traversal 由先序和中序遍历建立二叉树...
  5. Android中文URL乱码问题 解决
  6. poj 3714 Raid
  7. Hadoop只输出Key不输出Value的小技巧‏
  8. Expert C Programming学习笔记(1)
  9. Javascript经典窍门
  10. 【排序算法】希尔排序-常规排序