我有一個數據表有3列,即Column1, Column2
和Column3
與數據。我可以使用下面的代碼清除單列值。清除DataTable中的多個列值
dtTable.Rows.OfType<DataRow>().
ToList().
ForEach(r => r["Column1"] = DBNull.Value);
我需要清除相同數據表中的兩列;有沒有什麼方法可以在同一行代碼中指定兩個列名?
我有一個數據表有3列,即Column1, Column2
和Column3
與數據。我可以使用下面的代碼清除單列值。清除DataTable中的多個列值
dtTable.Rows.OfType<DataRow>().
ToList().
ForEach(r => r["Column1"] = DBNull.Value);
我需要清除相同數據表中的兩列;有沒有什麼方法可以在同一行代碼中指定兩個列名?
就這麼簡單:)
dtTable.Rows.OfType<DataRow>().ToList().ForEach(r =>
{
r["Column1"] = DBNull.Value;
r["Column2"] = DBNull.Value;
});
謝謝,它工作! – TechDo
您只需要使用;
到多個領域內分開{}
。請嘗試以下方法
dtTable.Rows.OfType<DataRow>().ToList().ForEach(r => {r["Column1"] = DBNull.Value; r["Column2"] = DBNull.Value;});
請勿使用ToList.ForEach
只是爲了能夠修改值。您正在創建一個完全多餘的全新系列。相反,你只需要一個循環。
foreach(DataRow row in dtTable.Rows)
{
// presuming nullable int-columns
row.SetField<int?>("Column1", null);
row.SetField<int?>("Column2", null);
}
SetField
方法也支持可空類型。 「如果value爲null,則SetField方法將空值轉換爲基礎DataColumn中的Value。」
'DBNull.Value'和'null'是不同的不是嗎? –
@SriramSakthivel:'SetField'支持可爲空的類型。 _「如果value爲null,則SetField方法將空值轉換爲基礎DataColumn中的Value。 」_ –
@TimSchmelter感謝您的信息。有沒有其他方法沒有使用循環? – TechDo
您可以使用
dtTable.Clear();
它會清除所有數據,但不能列。
Just fyi:'List.ForEach'根本不是LINQ,它是LINQ之前已經有的'List'的一種方法。 –