2015-01-05 2 views
0

Скажем, у меня есть столбец 1 и столбец2.Как заполнить все строки данных таблицы с таким же значением

Я хочу заполнить Column1 и Column2 «Text1» и «Text2» для определенного количества записей.

Есть ли способ, которым я могу достичь этого, не зацикливая каждую строку данных? Мне было интересно, есть ли какой-нибудь эффективный способ сделать это.

Прямо сейчас, я использую:

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]; 
} 
Смежные вопросы