Как получить операторы t-sql, используемые для обновления DataSet? - PullRequest
0 голосов
/ 21 мая 2010

У меня есть объект c # DataSet с одной таблицей в нем, и я поместил в него некоторые данные, и я внес некоторые изменения в этот набор данных (по коду).

Есть ли способ получить фактические запросы t-sql, которые этот набор данных будет выполнять на сервере sql, когда я обновлю набор данных в базу данных с помощью кода, который выглядит примерно так:

var dataAdapter = new SqlDataAdapter(cmdText, connection);
var affected = dataAdapter.Update(updatedDataSet);

Я хочу знать, какие запросы этот набор данных будет запускать в базу данных, чтобы я мог записать эти изменения в файл журнала в моей программе на c #.

Ответы [ 3 ]

1 голос
/ 21 мая 2010

Вы можете подписаться на RowUpdating и RowUpdated события SqlDataAdapter. Они скажут вам SqlCommand, который должен быть выполнен или который только что был выполнен.

Вы можете повлиять на текущие и будущие строки обновления, установив свойство Status для SqlRowUpdatingEventArgs, поставляемого с событием. Он имеет тип UpdateStatus, поэтому вы можете указать ему пропускать текущие или все будущие строки.

0 голосов
/ 23 мая 2010

Вы можете создать оболочку вокруг System.Data.SqlClient провайдера ( Например, провайдер, зарегистрированный в файле конфигурации как ... providerName="System.Data.SqlClient "). По существу, прокси-сервер перехвата, у вас будет доступ ко всем информация, передаваемая через провайдера, может откачивать то, что вам нужно, перехватывать, модифицировать, агрегировать и / или обогащать ее. Это немного более продвинутое, но открывает дверь для сбора всего спектра информации и может быть вставлено / заменено / удален как отдельный слой беспокойства.

0 голосов
/ 21 мая 2010

запрос объектов SqlCommand SqlDataAdapter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...