Как отправить данные в качестве параметра для хранимой процедуры в базе данных - PullRequest
0 голосов
/ 17 февраля 2009

По сути, я хочу выполнить внутреннее соединение для «datatable1», который находится в кэше веб-сервера, с другим «datatable2», хранящимся в базе данных.

У меня есть 2 способа для этого 1. Я могу перенести «datatable2» в кеш веб-сервера и написать логику соединения. Однако это будет очень дорого и исключено. 2. Отправьте «datatable1» в базу данных, выполните внутреннее соединение и получите результат обратно на веб-сервер.

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

Ответы [ 3 ]

3 голосов
/ 17 февраля 2009

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

Проверьте принятый ответ по адресу:

http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/f122d7f4-3b7d-4d93-bd0f-8bb57cd990a4/

0 голосов
/ 17 февраля 2009

Если вы используете SQL Server 2005+, я бы использовал OPENXML . Вы передаете свою таблицу данных в процедуру, используя параметр text или xml (используйте DataTable.WriteXml), попросите процедуру проанализировать ваш документ, а затем использовать ее в качестве результирующего набора, чтобы присоединить другую таблицу к.

0 голосов
/ 17 февраля 2009

Один из методов может заключаться в том, чтобы сериализовать вашу таблицу данных в xml и использовать параметр xml. Присоединиться к XML-документу очень легко, как к таблице.

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