可能这问题问得有点搞笑,但我新手不是很理解,
比如有一张表,里面有字段A,B,C,D,E,F,G,H,J...
我们使用ado.net查询绑定数据的时候sql语句 select A,B,C,D,E,F,G,H,J... from table
可是我们绑定数据的时候并不需要那么多字段啊,比如只要a,c,e,g这几个字段,
可能你们会回答那就写过个sql语句 select a,c,e,g from table,当然这样子看上去很完美。
但我突然又要多显示一个字段J,那select a,c,e,g,jfrom table这样子?
还是把所有的取出来了,像(select A,B,C,D,E,F,G,H,J... from table)包容了全部,
linq to sql 不是可以 
from t in table selec new{A=t.a,B=t.b,C=t.c}其实我想问,我们写ado.net的时候是先把所有字段查出来,还是根据页面需要什么字段查然后写什么sql语句。

解决方案 »

  1.   

    一般都会考虑留个参数 在sql语句里边 这样 即使要多查字段 只需要在传参数的时候 修改一下就好了
      

  2.   

    可是我们绑定数据的时候并不需要那么多字段啊,比如只要a,c,e,g这几个字段,
    那就绑定这个几个字段就可以了。其他可以不字段留着也只是占用内存空间而已。
    所以一般来说会一次性都取出来。因为如果这个字段真的没用,那么你也没必要去设置这个字段了,如果你这里只用到几个属性,那么其它地方用到其它属性你是不是要重新去取一次呢
      

  3.   

    最好根据页面需要什么字段查然后写什么sql语句都查出来 你不一定用的上某些字段 ,但有时为了快速开发 数据量不打的时候,是按查出所有字段
    来的
      

  4.   

    Select * From tb不是很好吗
      

  5.   

    所有的都需要:select * from tb
    只需要一部分:select 字段1名,字段2名,字段5名 from tb
      

  6.   

    数据量不大 不考虑内存浪费
    不考虑数据库还要查下字典你就 
    select * from XXX吧
      

  7.   

    楼主这个问题问的好. 一般情况下,我们会将操作表的增删改写成一个通用存储过程.然后动态传入表名.字段字符串.条件..针对达数量的数据比较快.再加上与linq的配合.基本能实现快速读取数据
      

  8.   

    多处用到就select *
    只有一处用到就看情况查所需字段嘛