假如在3层设计中,在UI层有一个产品列表(包括,名称,编号,颜色,单价,说明,添加时间)等字段,在中间层对它进行排序的操作,我是使用dataview来操作的,我在做的时候用的是dataset(数据层是用dataset来返回的,我的考虑是如果用IList来返回,无法做到排序,用dataset虽然浪费资源,不过对于排序啊,什么的非常方便,而且我用了SQL存储过程分页,也就是说dataset一次只返回20条左右的记录) 问题: 
1,我这样子做法好不好 
2,在层(就是UI层到中间层或数据层等)之间用什么传递最好 
3,能否说下你的做法

解决方案 »

  1.   

    1、不好说~你觉得怎么用着舒服就怎么用,看整个项目设计和规范;
    2、都一样~不过都是引用罢了;
    3、一般用DataView何DataTable,用着直接、简单;另外,不要太在意这种过细的资源、效率……
    一般情况下,最终使用情况是远远达不到设计目的的~~
      

  2.   

    .net 2.0 可以用泛型,List<业务实体类>
      

  3.   

    好象DataView是保持和数据库连接状态的
    而DataSet则不是
    至于用存储过程分页吗?一个简单的数学计算和几个SQL语句而已
      

  4.   

    如果每次只修改一条记录的话还要返回一个Dataset那不是有点浪费吗?
    返回所修改的记录Datarow不更好吗?
      

  5.   

    如果你分了层, 那么在view层又传了dataset过去, 那分层的意义又何在?但又说回来了,有利就有弊,一切规则都不死的,个人权衡了
      

  6.   

    个人认为你放在DataSet里面的排序怎么排序无所谓的;主要是你存储过程返回的是已经排序的吗?如果没有,那你就不仅仅要考虑层之间的问题,而是考虑怎么让存储过程在排序以后再返回给你要的这20条记录了;在数据量很大的情况下,把所有数据都放进DataSet里面绝对是一个很糟糕的设计;
      

  7.   

    IList怎么无法做排序呢,如果用dataset数据少的情况下还是可以的,如果数据多了最好还是用数组或者arraylist。应该说机构越简单你的排序效率就越高。所以尽量选择简洁的数据结构来封装你的数据。
      

  8.   

    晕倒。。你们都不没有看楼主说的啊。。dataset中存放的是已经分页过后的数据。。也就是说。。不管有多少条数据。。dataset只地存放20条数据。。还有啊。。如果要排序。。一下ASC,一下DESC,全用存储过程给你搞,不好吧。。如果放在dataset中,可以完全脱离数据库吧。。
      

  9.   

    DataSet 是不错的东西..
    DataView 呢