菜鸟问题:使用dataset有什么好处?
我以前开发的主要使用了com+技术,c/s 三层结构,数据库操作也主要是用存储过程,现正在学习.net,都说dataset采用离线访问技术,可我总感觉在性能上差别不大啊,也不如直接调用存储过程来得顺手,各位的高见呢? 问题点数:20、回复次数:7Top
1 楼yumei20001(纳兰一笑)回复于 2005-11-08 07:50:48 得分 2
你可以把数据用存储过程读到dataset,然后对dataset里的datatable进行处理,譬如修改,删除,添加,当你的数据量很大的时候,如几百万条的时候,效果应该比较明显
Top
2 楼njuzgj(罐子)回复于 2005-11-08 07:58:20 得分 0
楼上回答的不错Top
3 楼cuike519(I will be back!)回复于 2005-11-08 08:01:36 得分 3
主要是提供了更好的编程模型。
==》如几百万条的时候,效果应该比较明显
这个放到DataSet里面恐怕比较耗内存吧?Top
4 楼ChengKing((.net: http://blog.csdn.net/ChengKing ))回复于 2005-11-08 08:11:46 得分 10
(1)。
离线状态是指DataSet是把ado.net采用无持续连接访问方式,并且DataSet取得数据后
虽断开连接,但它的数据还保存. 在对DataSet记录集进行操作时,不需要一直维持着
连接。当更新到数据库时,再打开连接
(2)。如果调用用WebService,DataSet可以XML序列化,专门用来传递数据库数据信息.
XML WebService和SOAP标准支持的数据类型
不知道读者有没有遇到这种情况,在调用WebService并给一个方法传递了一个DataRow参数时,运行
时会抛出异常: "没法将参数序列化!",如果把DataRow加入到DataSet中,并将DataSet作为参数
传递再运行就OK了。 这是因为:XML WebService只能对数据集DataSet对象类型进行XML序列化,
不能对DataRow对象类型进行XML序列化造成的错误. 所以了解一下XML WebService支持序列化的基
本数据类型是比较重要的.它支持的数据类型如下:
1.基本数据类型.
标准类型,如:int float bool DateTime string等基本数据类型
2.枚举.
支持枚举Enum定义的类型
3.自定义对象.
可以传递任意基于自定义类或结构创建的对象。 但要注意一点: 它只能传输数据成员(变量和属性).
如果定义了方法,则方法不能进行序列化传输,序列化后只剩下数据成员.
4.DataSet对象
支持DataSet,切记:不支持DataTable和DataRow,DataSet已经是XML Webservice能够支持的最小的可序列化对象.
5.XmlNode对象
基于XmlNode的对象可以表示XML文档的一部分.
6.数组和集合
可以使用任何被支持的类型的数组和简单集合,包括: DataSet对象/XmlNode对象和自定义对象.
对程序员来说感觉到差不多一样,但不管在应用程序,还是数据库性能上都有所提高
Top
5 楼jxufewbt(我的目标是5星)回复于 2005-11-08 08:12:13 得分 0
楼上正解Top
6 楼sgh321(华海)回复于 2005-11-08 09:46:39 得分 0
可是使用dataset来修改,增加数据时,怎样来体现诸如事务等操作呢?是不是对dataset填充表结构后,诸如数据规则、索引也要重新设置?那好像也增加了编程的工作量?Top
7 楼Ivony(授人以鱼不如授人以渔,上海谋生)回复于 2005-11-08 09:54:14 得分 5
视情况而定,DataSet在某些方面(例如大量数据的更新同步,对数据进行非常复杂的处理),用起来非常方便,因为它是离线的,你想怎么弄就怎么弄。
但是在数据实时操作,事务处理,数据检索,聚合等方面就比较麻烦了。Top




