Команды вставки, удаления и обновления становятся пустыми после использования SqlCommandBuilder - PullRequest
2 голосов
/ 13 января 2012

У меня есть такая ситуация, когда мне нужно изменить команду вставки после того, как она сгенерирована sqlcommandbuilder, и мне нужно сделать это, чтобы получить scope_identity после вставки.Часть кода:

adapterClients = new SqlDataAdapter (cmdClients, connString);
SqlCommandBuilder cmdBuilder = new SqlCommandBuilder (adapterClients);
adapterClients.Fill (dataSet, "Clients");
adapterClients.InsertCommand.CommandText += "; select ClientID = SCOPE_IDENTITY()";
adapterClients.InsertCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord;

Я получаю пустое исключение для adapterClients.InsertCommand.

1 Ответ

2 голосов
/ 13 января 2012

Команда вставки, которая генерируется автоматически, будет частью компоновщика, а не адаптера. Поэтому вы можете использовать следующую команду для извлечения команды вставки:

cmdBuilder.GetInsertCommand()

Таким образом, в зависимости от того, что именно вы пытаетесь сделать, вы можете использовать следующее, чтобы (1) установить сгенерированную команду вставки для адаптера, а затем (2) изменить сгенерированную команду вставки, чтобы включить получение scope_identity.

adapterClients.InsertCommand = cmdBuilder.GetInsertCommand();
adapterClients.InsertCommand.CommandText += "; select ClientID = SCOPE_IDENTITY()";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...