柚子Nan--回归原点

Everything can be as easy as you like or as complex as you need.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

如何在DataTable中灵活使用Select方法

Posted on 2004-07-08 10:56  柚子Nan  阅读(1926)  评论(0编辑  收藏  举报

 

在操作DataTable 的时候,还会遇到一个常见的问题,对于DataTable中的某些行修改了状态,
我是指的人工显式的修改了,例如如下的代码:

//对于新的表增加一个状态列,表明是否访问过

        DataTable tempTable = dtDataTable[i].Copy();

        tempTable.Columns.Add("Visited",typeof(bool));

        foreach(DataRow tempRow in tempTable.Rows)

        {

            tempRow["Visited"] = false;

        }

 

//然后对于某些行进行操作,同时修改了状态

    foreach(DataRow aDataRow in tempTable.Rows)

    {

        if(aDataRow["StepNo"].ToString())

        {

            aDataRow["TotalPrice"]=0

            aDataRow["Visited"] = true;

        }

    }

那么最后tempTable中就会有一些Row的列Visited = false的。如何找到这些列呢?

 

当然就与本文的题目对应

DataRow []unVisitedRows = tempTable.Select("Visited = false"); 

显然他返回的是一个DataRow的数组,接下来如何对数组中的每个行如何操作,就不用说了。有一点要注意的是我的
上一个
Blog中提到的

DataSet,DataTable.DataRow复制方法——解决:此行已属于另一个表

 

另外,public DataRow[] Select( string filterExpression)

filterExpression 这个参数还可以使用 and ,or 等等操作符,例如:filterExpression 
= " id='D' or stepnt<>'' "