обновление пакетов данных - PullRequest
0 голосов
/ 02 апреля 2010

Я использую GridView в asp .net и редактирую данные с помощью свойства поля команды edit (как мы знаем после обновления отредактированной строки, мы автоматически обновляем базу данных), и я хочу использовать транзакции (с оператором begin to commit - включая откат), чтобы зафиксировать этот запрос на обновление в базе данных, после нажатия какой-либо кнопки (например, после некоторых событий), а не для автоматической вставки или обновления отредактированных данных из сетки непосредственно в БД ... поэтому я хочу сохранить их где-нибудь временно ( даже много отредактированных строк - не только одной строки), а затем для подтверждения транзакции - для обновления реальных таблиц в базе данных ...

Любые предложения приветствуются ...

Я использовал несколько хороших ссылок, но очень полезных, таких как: http://www.asp.net/learn/data-access/tutorial-63-cs.aspx http://www.asp.net/learn/data-access/tutorial-66-cs.aspx и т.д ...

Ответы [ 2 ]

1 голос
/ 02 апреля 2010

Ну

вы можете сохранить ваши отредактированные данные в DataTable в сеансе. и затем передайте эту таблицу данных как массовую вставку в базу данных. 2 варианта доступны для этого

  1. если вы используете SQL Server 2005, вы можете использовать OpenXML для достижения этой цели, как я уже говорил здесь
  2. если вы используете SQL Server 2008, вы можете использовать переменные таблицы, как я здесь .

надеюсь, это поможет

1 голос
/ 02 апреля 2010

Первый способ: Создайте переменную сеанса, которая будет содержать ваш объект БД (DataTable или сопоставленные объекты). GridView должен работать с этим экземпляром, а не отправлять данные в базу данных. После завершения редактирования вы можете взять объект из сеанса и сохранить его, как обычно.

Второй способ: Я бы использовал javascript, чтобы собрать все изменения на стороне клиента, пока он редактирует как массив объектов (каждый объект - отдельная строка). После завершения редактирования вы можете создать строку json из коллекции и передать ее на сервер. Если ваша конфигурация объекта json такая же, как у класса сервера, вы можете использовать JavaScriptSerializer для десериализации вашей строки в коллекцию объектов. После этого вы можете сохранять свои объекты, как обычно.

...