2015-01-05 54 views
0

說我有Column1和Column2。如何填充具有相同值的表的所有數據行

我想用「Text1」和「Text2」爲一定數量的記錄填充Column1和Column2。

有沒有什麼辦法可以實現這一點,而不需要循環遍歷每個數據行?我想知道是否有任何性能高效的方法來做到這一點。

現在,我使用:

foreach(DataRow row in dt.Rows) 
{ 
    row["Column1"] = "Text1"; 
    row["Column2"] = "Text2"; 
} 

但是,如果我有這樣的事情50K行,這個循環將需要很長的時間。任何方式來減少那個時間?

+0

我已標記了。 – coffeeak

+0

我編輯過你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+0

@JohnSaunders注意並感謝! – coffeeak

回答

0

如果要更新一定的行數:

update top 10 dt 
    set column1 = 'text1', 
     column2 = 'text2'; 
0

您還可以使用CTE做到這一點。

;WITH CTE 
    AS (SELECT TOP N * 
     FROM Yourtable 
     ORDER BY somecolumn) 
UPDATE CTE 
SET column1 = 'text1', 
     column2 = 'text2' 
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]; 
} 
相關問題