-- 作者:admin
-- 发布时间:11/9/2004 2:26:00 AM
-- [合集] 该不该用DataSet?
发信人: DRAGONESE (龙裔◎小兔子乖乖), 信区: DotNET 标 题: [合集] 该不该用DataSet? 发信站: BBS 水木清华站 (Thu Sep 18 18:03:38 2003), 站内 ☆─────────────────────────────────────☆ GMeazza (一个球员,一世传说) 于 (Tue Sep 16 16:17:34 2003) 提到: 微软的网上书店层与层之间的数据传输都是用的DataSet,而网上宠物商店例程用的又都 是自己封装的数据对象。 那么,到底在什么情况下用DataSet传递数据好一些呢?有什么可以参考的原则吗? 我个人觉得用DataSet会有如下缺点: 1.数据量比较大:主表从表的数据,临时数据等 2.面向对象违背:从数据库到各层以及最后的UI,对数据表和字段进行操作,都不是面向 对象的。 优点:从数据查询书数据到显示到UI以及返回数据库都比较简单。编码量比较小。 请各位大虾指教,谢谢。 ☆─────────────────────────────────────☆ fayewong (王菲.1 JumpAhead) 于 (Tue Sep 16 16:28:23 2003) 提到: 你说得已经比较多了 其实DataSet可以用面向对象的方法进行封装,类似TypedDataSet 还有,如果考虑null值的存取等细节,不用dataset开发数据结构还是很麻烦的 【 在 GMeazza (一个球员,一世传说) 的大作中提到: 】 ∶微软的网上书店层与层之间的数据传输都是用的DataSet,而网上宠物商店例程用的又都 ∶是自己封装的数据对象。 ∶那么,到底在什么情况下用DataSet传递数据好一些呢?有什么可以参考的原则吗? ∶我个人觉得用DataSet会有如下缺点: ∶1.数据量比较大:主表从表的数据,临时数据等 ∶2.面向对象违背:从数据库到各层以及最后的UI,对数据表和字段进行操作,都不是面向 ∶对象的。 ∶优点:从数据查询书数据到显示到UI以及返回数据库都比较简单。编码量比较小。 ∶请各位大虾指教,谢谢。 ☆─────────────────────────────────────☆ GMeazza (一个球员,一世传说) 于 (Tue Sep 16 16:56:47 2003) 提到: 谢谢你的答复。:) 1.对Dataset进行封装:那个网上书店例程有做了一些,你觉得有没有必要对DataSet 进行更加好的封装,使得各个层访问数据的时候就是我的封装类.方法名进行,不用 直接对DataSet和数据库表啊字段的进行直接操作,也就是可以不关心数据库的细节。 我在这个封装类中用类似于Adapter设计模式来进行,为DataSet和各层使用者之间进行 接口的转换。 2.null: 用DataSet的时候,也需要对null进行判断的吧?而如果是数据对象的话,只要 生成该对象时判断处理一次就行了。 不知有没有人这样用过,呵呵。 欢迎大家批评指正 【 在 fayewong (王菲.1 JumpAhead) 的大作中提到: 】 ∶你说得已经比较多了 ∶其实DataSet可以用面向对象的方法进行封装,类似TypedDataSet ∶还有,如果考虑null值的存取等细节,不用dataset开发数据结构还是很麻烦的 ☆─────────────────────────────────────☆ fayewong (王菲.1 JumpAhead) 于 (Tue Sep 16 17:08:13 2003) 提到: 我的意思是如果用一般的对象,属性可能是int类型 这样我必须规定一个值来代表null,这样就损失掉一个int值 如果是string,我是不是要规定""或者"null"代表空值呢?都不太妥当 如果DateTime呢? 各种数据类型要各自处理,很烦琐 如果用DataSet 这个字段本身就可以储存Null 我只需要在读出来,和放回去的时候做额外的判断就好了 甚至可以做成自己的绑定方法 【 在 GMeazza (一个球员,一世传说) 的大作中提到: 】 ∶谢谢你的答复。:) ∶1.对Dataset进行封装:那个网上书店例程有做了一些,你觉得有没有必要对DataSet ∶进行更加好的封装,使得各个层访问数据的时候就是我的封装类.方法名进行,不用 ∶直接对DataSet和数据库表啊字段的进行直接操作,也就是可以不关心数据库的细节。 ∶我在这个封装类中用类似于Adapter设计模式来进行,为DataSet和各层使用者之间进行 ∶接口的转换。 ∶2.null: 用DataSet的时候,也需要对null进行判断的吧?而如果是数据对象的话,只要 ∶生成该对象时判断处理一次就行了。 ∶不知有没有人这样用过,呵呵。 ∶欢迎大家批评指正 ☆─────────────────────────────────────☆ GMeazza (一个球员,一世传说) 于 (Tue Sep 16 17:13:52 2003) 提到: 你说的有道理 但如果是数据对象我也可以不给它值,让它等于null好了 访问的时候也是判断方法的返回值是不是等于null一样的效果啊. 【 在 fayewong (王菲.1 JumpAhead) 的大作中提到: 】 ∶我的意思是如果用一般的对象,属性可能是int类型 ∶这样我必须规定一个值来代表null,这样就损失掉一个int值 ∶如果是string,我是不是要规定""或者"null"代表空值呢?都不太妥当 ∶如果DateTime呢? ∶各种数据类型要各自处理,很烦琐 ∶如果用DataSet ∶这个字段本身就可以储存Null ∶我只需要在读出来,和放回去的时候做额外的判断就好了 ∶甚至可以做成自己的绑定方法 ☆─────────────────────────────────────☆ fayewong (王菲.1 JumpAhead) 于 (Tue Sep 16 17:33:35 2003) 提到: 像int这样的类型永远不会是null 【 在 GMeazza (一个球员,一世传说) 的大作中提到: 】 ∶你说的有道理 ∶但如果是数据对象我也可以不给它值,让它等于null好了 ∶访问的时候也是判断方法的返回值是不是等于null一样的效果啊. ☆─────────────────────────────────────☆ GMeazza (一个球员,一世传说) 于 (Tue Sep 16 17:36:35 2003) 提到: 恩,基本数据类型嘛 的确是DataSet的优点之一 【 在 fayewong (王菲.1 JumpAhead) 的大作中提到: 】 ∶像int这样的类型永远不会是null 上一篇 返回上一页 回到目录 回到页首
|