说我有Column1和Column2。
我想用" Text1"填充Column1和Column2。和" Text2"对于一定数量的记录。
有没有办法在不循环遍历每个数据行的情况下实现这一目标?我想知道是否有任何高性能的方法来做到这一点。
现在,我正在使用:
foreach(DataRow row in dt.Rows)
{
row["Column1"] = "Text1";
row["Column2"] = "Text2";
}
但如果我有50k行,那么这个循环需要很长时间。有什么方法可以缩短那段时间吗?
答案 0 :(得分:0)
如果您想更新一定数量的行:
update top 10 dt
set column1 = 'text1',
column2 = 'text2';
答案 1 :(得分:0)
您也可以使用CTE
执行此操作。
;WITH CTE
AS (SELECT TOP N *
FROM Yourtable
ORDER BY somecolumn)
UPDATE CTE
SET column1 = 'text1',
column2 = 'text2'
答案 2 :(得分:0)
您可以尝试:
foreach (DataRow row in dt.Rows.Cast<DataRow>().Take(10))
{
row["Column1"] = "Text1";
row["Column2"] = "Text2";
}
或者您可以使用简单的for
循环:
for(int i = 0; i <= 10; i++) {
var row = rows[i];
}