不循环更新数据表中的多行

问题描述 投票:0回答:4

我有两个具有应用程序条件的数据表,并且希望对多行进行一些处理以更新列值。

例如:

我的 datatable1 有 10000 行。我想通过 datatable.select("condition") 过滤行,并根据条件,我想更新行值。

如果有任何条件,我从数据表中找到了 20 行。我想一次性更新这20条记录。不在任何循环中。我有数据行数组,用于在数据表中更新这些值。

c# asp.net datatable
4个回答
11
投票

您可以尝试以下 linq,

DataTable recTable = new DataTable();

// do stuff to populate table

recTable.Select(string.Format("[code] = '{0}'", someName)).ToList<DataRow>().ForEach(r => r["Color"] = colorValue);

您可以在此处替换您的列和值...


2
投票

要更新具有多个条件的行,请使用此

    datatable.Select(string.Format("[lineNo]='{0}' and [Position]>='{1}' ", lineNo, Position)).ToList<DataRow>().ForEach(r => r["Linetext"] ="Sample Text" );

0
投票

如果您想使用

abc
使用 Expression 默认列值,那么您可以使用以下代码。

dt.Columns.Add("ColumnName").Expression = "'abc'";

如果您需要使用变量动态传递值,可以使用以下代码。

string str = "abc";
dt.Columns.Add("ColumnName").Expression = "'" + str + "'";

0
投票

VB.NET 中的示例

dt.Select("id = 1").ToList().ForEach(Sub(drow) drow("val") = "number 1")
© www.soinside.com 2019 - 2024. All rights reserved.