一般会把所需要的记录选取出来,填入dataTable中,再在内存中操作对应的表,最后再更新回数据库中。
那么如果数据量很大的话有什么解决方案?
比如要对整个库进行读取和内容处理,不可能一次都读取出来的。

解决方案 »

  1.   

    可以使用Row_Number 方法,需要多少资料,取多少资料
    SELECT 
    ROW,CategoryID,CategoryName,Description 
    FROM
    (SELECT
    ROW_NUMBER() OVER(ORDER BY :sortExpression) AS ROW, 
    CategoryID,CategoryName,Description FROM Categories 
    ) AS PageTable
    WHERE (ROW > @startRowIndex)
    AND (ROW <= (@maximumRows + @startRowIndex)) 
      

  2.   

    for(int i=0;i<table.Rows.Count;i++)
    {
    //处理
    }
      

  3.   

    或者
    foreach(DataRow row in table.Rows)
    {
      //代码
    }
      

  4.   

    那就采用流模型vs2005没有linq,我不知道有了linq会怎么处理,可能要简单得多,流模型就是用SqlCommand, SqlDataReader构成的操作,不会占内存的,不象DataSet
      

  5.   

    TO:TNT_1st_excellence 
    这是SQL2005的特性吧?如果忽略采用什么数据库呢?
      

  6.   

    很明显,可以用SQL语句的
    select * top10  from 表名  (具体不记得了)
    来查询前10条记录,或者可以查百分之几的数据
      

  7.   

    修改你的SQL,一部分一部分的取出来显示,有点像分页的SQL那种
    select  top n  *  ............  where  x not in (select top m  *   。)