Вопрос

Каков наилучший метод для сохранения тысяч строк и после выполнения чего-либо их обновления?

В настоящее время я использую datatable, заполняя его, когда выполняю вставку с помощью

MyDataAdapter.Update(MyDataTable)

После внесения некоторых изменений в MyDataTable я снова использую MyDataAdapter.Метод Update (MyDataTable).

Редактировать:

Я прошу прощения за то, что не предоставил дополнительной информации.

Может быть до 200 000 строк, которые будут созданы из XML-файла.Там строки будут сохранены в базе данных.После этого для каждой строки будет выполнен некоторый процесс.И мне нужно будет обновить каждую строку в базе данных.

Вместо обновления строка за строкой я решил обновить datatable и использовать тот же dataadapter для обновления строк.

Это лучшее, что есть во мне.

Я думаю, что, возможно, есть более разумный подход.

Это было полезно?

Решение

Реагируя на ваши комментарии:

Ан DataAdapter.Update() будет удалять (и вставлять / удалять) строку за строкой.Если у вас есть индивидуальные изменения, более быстрого способа действительно нет.Если у вас есть систематические изменения, такие как SET Price = Price+ 2 WHERE SelByDate < '1/1/2010' вы становитесь лучше, запустив DbCommand - команда DbCommand против базы данных.

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

Другие советы

Если я правильно понимаю, вы выполняете две отдельные операции:загрузка строк в базу данных, а затем обновление этих строк.

Если строки, которые вы вставляете, поступают из другого ADO.NET поддерживаемого источника данных, вы можете использовать SqlBulkCopy для пакетной вставки строк, что будет более эффективным, чем использование datatable.

Как только строки окажутся в базе данных, я бы предположил, что вам было бы лучше выполнить SqlCommand для изменения их значений.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top