迭代DataView for Update

时间:2010-07-18 16:13:48

标签: asp.net linq dataview

我有一个DataView过滤器

inputView.RowFilter = "isnull(" + ID1 + ",'')<>'' and isnull(" + reason + ",0)=0";

在此过滤器后,我必须将IsVerified的“inputView”列更新为“1”

LINQ中有什么东西可以执行以下操作吗?

inputView.RowFilter.ForEach(x=>x.Field<IsVerified> =1);

1 个答案:

答案 0 :(得分:1)

如果要在DataView上使用LINQ,则必须在DataView上创建自己的扩展方法。 DataView本身没有。ToList()方法,这是。ForEach()的定义。

为DataView创建扩展方法。

public static class DataViewExtensions
{
    public static List<DataRowView> ToList(this DataView v)
    {
        List<DataRowView> foo = new List<DataRowView>();

        for (int i = 0; i < v.Count; i++)
        {
            foo.Add(v[i]);
        }
        return foo;
    }

}

现在可以将您的DataView称为:

inputView.ToList().ForEach(x=>x["IsVerified"]=1);

有些开发人员可能更喜欢完整的.NET foreach (var x in y)语句,但这样做也是如此。

一个完整的控制台应用程序概念概念:http://pastebin.com/y9z5n6VH