解决方案 »

  1.   


    1.这个可以这样:第1个sql语句
    union all
    第2个sql语句
    union all
    第3个sql语句
      

  2.   

    1. 可以将查询结果逐个存入Dataset.
    2. 如果数目很大,可以分批查询,一般几千条占用也就百兆级空间,对现在的电脑来说不是问题。我的程序载入2500条左右,也就占用了120MB。
      

  3.   

     多条sql语句的结果加起来大概有500万条数据,查出来怕客户机内存溢出。 还有办法么?
      

  4.   

    那最好的办法是将所有查询的结果用SQL输出,就像1楼说的那样,因为合并单个查询,你不知道最后结果是多少。
    如果超过希望的数量,就分页查询,规定每次返回多少数据,当然在页面设计的时候也要设计相应的页码。
      

  5.   


    这个数据量确实太大了,如果一次性加载到c#中,估计会内存溢出把。对了,这个500w条数据,是最后的结果,还是只是个中间结果,还要进一步处理呢
    不处理,就是用户的查询结果,除了增加内存没别的办法了么?哦,这样啊,但是用户不可能一次浏览500w条数据的,所以你要做分页,比如一次给他100条数据,然后他要看下一页,就在把下面的100条数据查询出来发回给他。这个是一个分页的sql代码,你可以参考一下:
    declare @page_size int;
    declare @page_num int;--比如:每页10条记录
    set @page_size = 10;--比如:先取第1页
    set @page_num = 1;select id,sid,sname
    from
    (
    select c.id,
           c.sid,
           s.sname,
           
           --这里按照@@servername来排序,
           --你可以根据需要按照id,sid,sname等字段来排序
           (row_number() over(order by @@servername) - 1) / @page_size as rownum
    from commet c
    inner join student s
            on c.sid = s.sid
    )t
    where rownum = @page_num - 1
      

  6.   

    用户页面生成一条sql语句,我把它拆分为多条,去数据库中的不同的表(表结构都相同,只是表名不同)查询,再把查询结果综合呈现给用户。
      

  7.   


    这个数据量确实太大了,如果一次性加载到c#中,估计会内存溢出把。对了,这个500w条数据,是最后的结果,还是只是个中间结果,还要进一步处理呢
    不处理,就是用户的查询结果,除了增加内存没别的办法了么?哦,这样啊,但是用户不可能一次浏览500w条数据的,所以你要做分页,比如一次给他100条数据,然后他要看下一页,就在把下面的100条数据查询出来发回给他。这个是一个分页的sql代码,你可以参考一下:
    declare @page_size int;
    declare @page_num int;--比如:每页10条记录
    set @page_size = 10;--比如:先取第1页
    set @page_num = 1;select id,sid,sname
    from
    (
    select c.id,
           c.sid,
           s.sname,
           
           --这里按照@@servername来排序,
           --你可以根据需要按照id,sid,sname等字段来排序
           (row_number() over(order by @@servername) - 1) / @page_size as rownum
    from commet c
    inner join student s
            on c.sid = s.sid
    )t
    where rownum = @page_num - 1
     谢谢大神