我有一个包含3列的数据表,Column1, Column2
和Column3
包含数据。我可以使用以下代码清除单列值。
dtTable.Rows.OfType<DataRow>().
ToList().
ForEach(r => r["Column1"] = DBNull.Value);
我需要清除同一数据表的两列;有没有方法在同一行代码中指定两个列名?
答案 0 :(得分:5)
不能仅使用ToList.ForEach
来修改值。您正在创建一个完全多余的全新系列。相反,你只需要一个循环。
foreach(DataRow row in dtTable.Rows)
{
// presuming nullable int-columns
row.SetField<int?>("Column1", null);
row.SetField<int?>("Column2", null);
}
SetField
方法也支持可空类型。 &#34;如果value为null,则SetField方法将null值转换为基础DataColumn中的Value。&#34;
答案 1 :(得分:4)
就这么简单:)
dtTable.Rows.OfType<DataRow>().ToList().ForEach(r =>
{
r["Column1"] = DBNull.Value;
r["Column2"] = DBNull.Value;
});
答案 2 :(得分:2)
您只需使用;
分隔{}
内的多个字段。试试下面的
dtTable.Rows.OfType<DataRow>().ToList().ForEach(r => {r["Column1"] = DBNull.Value; r["Column2"] = DBNull.Value;});
答案 3 :(得分:0)
您可以使用
dtTable.Clear();
它会清除您的所有数据,但不会清除列。