日期:2014-05-18  浏览次数:21056 次

datatable中查找指定字段相同的Datarow
最近碰到个问题,一个datatable中
column1       column2               column3
1                     test1                   test01
2                     test2                   testo2
3                       test1                 test03
4                       test3                     test04
其中column1为主键,要求能从datatable中查出字段column2相同的所有datarow
应该如何写.

------解决方案--------------------
MSDN:
获取按照指定的排序顺序且与筛选条件相匹配的所有 DataRow 对象的数组。

命名空间:System.Data
程序集:System.Data(在 system.data.dll 中)

语法

C#
public DataRow[] Select (
string filterExpression,
string sort
)


参数
filterExpression
要用来筛选行的条件。

sort
一个字符串,它指定列和排序方向。


返回值
与筛选表达式相匹配的 DataRow 对象的数组。
备注
若要形成 filterExpression 参数,请使用与创建 DataColumn 类的 Expression 属性值相同的规则。Sort 参数也使用与创建类的 Expression 字符串相同的规则。

示例
下面的示例使用筛选表达式来返回 DataRow 对象的数组。
C# 复制代码
private void GetRowsByFilter()
{
DataTable table = DataSet1.Tables[ "Orders "];

// Presuming the DataTable has a column named Date.
string expression = "Date > '1/1/00 ' ";

// Sort descending by column named CompanyName.
string sortOrder = "CompanyName DESC ";
DataRow[] foundRows;

// Use the Select method to find all rows matching the filter.
foundRows = table.Select(expression, sortOrder);

// Print column 0 of each returned row.
for(int i = 0; i < foundRows.Length; i ++)
{
Console.WriteLine(foundRows[i][0]);
}
}