Вставка нескольких строк в таблицу SQL Server из веб-приложения - наилучшая практика - PullRequest
0 голосов
/ 14 сентября 2011

Каков наилучший способ записи данных из веб-формы .NET в SQL Server 2005?

Мое веб-приложение создает формы динамически, и количество полей в каждой форме может варьироваться от нескольких до почти ста.

Способ, которым я сейчас занимаюсь, - это собрать отправленные данные формы (используя метод Request.Form.AllKeys) в таблицу данных, открыть соединение sql и вызвать одну и ту же хранимую процедуру для каждой строки в моей таблице данных перед закрытием. соединение снова. Это кажется неэффективным способом ведения дел.

Я знаю, что могу использовать SqlBulkCopy для этой цели, но затем я теряю функциональность, предоставленную мне хранимыми процедурами (например, возможность объединять различные команды вместе).

У кого-нибудь есть предложения?

Ответы [ 3 ]

2 голосов
/ 14 сентября 2011

Вы можете передать данные в виде списка с разделителями и разделить их (см. Как разделить строку, чтобы я мог получить доступ к элементу x? ) - хотя это еще не самая эффективная вещь в мире, скорее всего, это будет более эффективным, чем вызов процедуры сотни раз.

В SQL Server 2008 вы сможете использовать табличные параметры.

0 голосов
/ 14 сентября 2011

Вы можете создать один оператор вставки, который вставляет несколько записей.Конечно, было бы сложно сделать это с помощью хранимой процедуры.Не зная больше о том, что вы делаете, трудно сказать, есть ли какое-то конкретное преимущество в использовании хранимой процедуры.Жизнь полна компромиссов.

0 голосов
/ 14 сентября 2011

Я бы порекомендовал вам взглянуть на DataBinding и элементы управления данными.

Несмотря на то, что они будут делать то же самое "под капотом", что и вы в настоящее время, вы, по крайней мере, получите выгоду от повышения удобства сопровождения и оптимизации кода благодаря использованию инфраструктуры.

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