Dot-Net

在沒有 for 循環的情況下為數據表中的所有行設置值

  • December 18, 2020

我正在嘗試為數據表中單個列的所有行設置相同的值,而不使用 for 循環。任何人都可以提出任何更快的方法來實現相同的目標。

除非你數數foreach。一種或另一種方式,你需要循環。

如果你使用DataTable版本,最快的方法是使用DataColumn訪問器,即

var col = table.Columns["Foo"];
foreach(var row in table.Rows)
   row[col] = value;

作為替代方案:由於這可能與數據庫有關,因此請手動編寫 TSQL 以適當地設置所有值(即在 TSQL 中使用合適 where的子句)。

update [theTable]
set [theColumn] = theValue
where --TODO - something sensible

是的,這是可能的,即使沒有循環!這可以通過Expression財產來完成。請記住,應該引用字元串值,否則它會將其視為另一個列名。1

這將使用字元串值設置列“col1” a

preview.Columns["col1"].Expression = "'a'";

這將在“col1”中顯示“col2”列的值:

preview.Columns["col1"].Expression = "col2";

引用自:https://stackoverflow.com/questions/5063551