清除DataTable中的多个列值

时间:2014-01-17 10:31:23

标签: c# linq datatable

我有一个包含3列的数据表,Column1, Column2Column3包含数据。我可以使用以下代码清除单列值。

dtTable.Rows.OfType<DataRow>().
       ToList().
       ForEach(r => r["Column1"] = DBNull.Value);

我需要清除同一数据表的两列;有没有方法在同一行代码中指定两个列名?

4 个答案:

答案 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();

它会清除您的所有数据,但不会清除列。