假设我有一个带有颜色列的表。颜色可以有不同的值。我有一个可以一次处理给定列的项目的 C# 方法。因此,我想:
foreach(colorname in mytable.getDistinctColornames)
monocolorMethod(mytable.getSubTableOnlyContainingRowsWithColor(colorname))
我将如何优雅地做到这一点......?
无论如何,我都会避免来回复制数据。我想对数据表有一种看法。仅“显示”给定列的行的视图和“可写”视图(即,当我写入过滤的子集时,将写入原始表)
编辑 :
假设我有一个“汽车”表,我想在“类型”列中将“轿车”替换为“卡车”,用于所有具有“颜色=红色”的汽车。
给出以下代码我该怎么办?
DataTable cars (...); // the data
DataView dv = cars.DefaultView;
dv.RowFilter = "Color='Red'";
<这里我想在DataView上循环>。以下代码不起作用:
foreach (row in dv.AsEnumerable)
{
if(row["Type"] == "Sedan")
row["Type"] = "Truck";
}
编辑 2:
发现这个http://msdn.microsoft.com/fr-fr/library/system.data.dataview.allowedit.aspx这表明
view.AllowEdit = true;
view[0].BeginEdit();
view[0]["FirstName"] = "Mary";
view[0]["LastName"] = "Jones";
view[0].EndEdit();