假设我有一个数据集,其中包含一个表格,该表格的列标题为 A、B、C 我只需要清除B列的所有内容。我怎样才能做到这一点?
目前我所做的是,首先删除 B 列
Dataset.Tables[0].Columns.Remove(B);
然后添加回来
Dataset.Tables[0].Columns.Add(B);
但是如果执行上述方法,列索引将会改变。是否有其他有效的方法可以做到同样的事情......?
最佳答案
最简单的方法是使用循环:
foreach(DataRow row in Dataset.Tables[0].Rows)
{
row.SetField("B", ""); // or whatever you want to assign
}
您还可以删除该列,再次添加它并使用 SetOrdinal
来获取相同的位置:
int ordinal = Dataset.Tables[0].Columns["B"].Ordinal;
Dataset.Tables[0].Columns.Remove("B");
DataColumn bCol = Dataset.Tables[0].Columns.Add("B");
bCol.SetOrdinal(ordinal);
后者并不比普通循环更有效,因为它 also uses a loop behind the scenes .
如果您需要一种通用方法来分配“空”值(这意味着给定列类型的默认值),您可以使用此方法:
Type colType = Dataset.Tables[0].Columns["B"].DataType;
object defaultValue = colType.IsValueType ? Activator.CreateInstance(bType) : null;
foreach (DataRow row in Dataset.Tables[0].Rows)
{
row.SetField("B", defaultValue);
}
关于c# - 如何根据c#中的列标题清除数据集行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30391802/