Ado.net отключил обновление всей таблицы - PullRequest
0 голосов
/ 02 октября 2018

Я знаю, что по этому вопросу есть еще много статей, но мой вопрос - это особый случай - как мне кажется,

У меня есть DataSet, заполненный Datatable с именем «Categories» от OleDataAdapter.Заполнив таблицу «Категории» из базы данных на локальном ПК, я сделал для нее огромное редактирование (добавив строки - возможно, тысячи - и обновив поля).

Теперь я хочу обновить все этиредактирует таблицу базы данных на ПК.как сделать это максимально быстро?

1 Ответ

0 голосов
/ 02 октября 2018

Попробуйте SqlBulkCopy

https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlbulkcopy?redirectedfrom=MSDN&view=netframework-4.7.2

быстрый образец:

 DataTable dt = new DataTable();
    foreach (var itm in sampleList) {
        DataRow row = dt.NewRow();
        row["Field1"] = itm.Field1;
        row["Field2"] = itm.Field2;
        row["Field3"] = itm.Field3;
        dt.Rows.Add(row);
    }
    using (SqlConnection cn = new SqlConnection(connectionString)) {
        cn.Open();
        using (SqlBulkCopy bulkCopy = new SqlBulkCopy(cn)) {
            bulkCopy.DestinationTableName = "dbo.Categories";
            bulkCopy.WriteToServer(dt);
        }
        cn.Close();
    }
...