日期:2009-08-23 浏览次数:20462 次
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!