C # и медленное обновление System.Data.DataRow в ADO.NET - PullRequest
0 голосов
/ 03 ноября 2010

Я использую ADO.NET в простом приложении на C #.

Есть две таблицы, ТаблицаA и ТаблицаB.Таблица A является родителем таблицы B. Таблица A содержит:

  1. id в качестве первичного ключа (Int32)
  2. Другие столбцы.Я думаю, что это не имеет значения, поэтому я не буду уточнять.

В таблице B есть следующие столбцы:

  1. id (первичный ключ) (Int32)
  2. tableAid(связь внешнего ключа с таблицей A) (Int32 и первичный ключ)
  3. X (двойной тип)
  4. Y (двойной тип)

Я создал приблизительно 300строки в таблице B. Я хочу обновить значения столбцов для X и Y, чтобы они имели одинаковое значение для каждой строки.В настоящее время я делаю это:

TableBRow[] rowsOfB = TableA.GetTableBRows();

for (int i = 0 ; i < rowsOfB.Length ; i++) 
{
    rowsOfB[i].X = newXvalue; 
    rowsOfB[i].Y = newYvalue; 
}

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

1 Ответ

0 голосов
/ 03 ноября 2010

если вы делаете большое обновление, обычно создаете временную таблицу, выполняете массовую вставку, присоединяетесь к этой временной таблице и выполняете обновление быстрее, чем n обновлений.

...