【发布时间】:2012-06-19 18:41:43
【问题描述】:
我有一个带有一个数据表的数据集。现在我想在这个表上设置一个过滤器,并将结果复制到相同类型的数据集,这样我就有了一个只有过滤结果的新数据集。我该怎么做?
下面的代码有效吗?
ds.Tables[<table name>].DefaultView.RowFilter = "ProductId=5";
newDS = ds.copy();
【问题讨论】:
我有一个带有一个数据表的数据集。现在我想在这个表上设置一个过滤器,并将结果复制到相同类型的数据集,这样我就有了一个只有过滤结果的新数据集。我该怎么做?
下面的代码有效吗?
ds.Tables[<table name>].DefaultView.RowFilter = "ProductId=5";
newDS = ds.copy();
【问题讨论】:
您可以执行以下操作:
DataSet filterResult = new DataSet();
filterResult.Merge(inputDataset.Tables[0].AsEnumerable().Where(r => r["Property1"].ToString().Equals("SomeFilter") || r["Property2"].ToString().Equals("Some other filter")).ToArray());
请注意,DataTable 提供了 Select 方法,但它有时会抛出一些非常奇怪的异常,因此我更喜欢使用可枚举的行列表和 lambda。
【讨论】: