Я разрабатываю уровень доступа к данным для приложения C# / ASP.net, и у меня есть вопрос относительно обработки параметров в sql-запросах.
В настоящий момент, когда запросу требуется динамически устанавливаемый параметр для предложения Where, я должен (1) определить переменную для хранения значения, (2) добавить новый QueryStringParameter в коллекцию SelectParameters SqlDataSource, (3) установить временное значение параметра при вызове метода, содержащего запрос, (4) и установить значение параметра в событии Selecting для SqlDataSource.
У меня есть список из ~ 20 параметров, которые используются в разных запросах, и кажется, что я должен определить каждый один раз и просто указать метод, который использовать (и соответствующим образом обновить его значение).
Есть хороший способ настроить это?





Мой любимый способ сделать это - настроить источник данных объекта, а затем в своем адаптере таблицы вы можете добавлять запросы для всех различных запросов, которые вы хотите выполнить, с различными параметрами, которые вам нужны для различных выборок. Это дает вам возможность игнорировать фактические параметры и просто использовать класс для вызова методов и передачи соответствующих параметров. Вы также получаете то преимущество, что вам возвращают объект первого класса или коллекцию объектов, вместо того, чтобы беспокоиться о приведении типов каждого из возвращенных значений. Однако этот метод не работает, если схема, которую вы возвращаете, изменяется для каждого запроса.
Эта статья из блога Скотта Гу, кажется, освещает то, о чем я говорю, гораздо лучше, но, честно говоря, я только бегло ее рассмотрел:
http://weblogs.asp.net/scottgu/archive/2006/01/15/435498.aspx
Сначала я попытался использовать DataSets и использовать проприетарные инструменты VS, но мне просто не хотелось быть настолько привязанным к этому. У меня также были некоторые проблемы с DataSets, когда дело касалось псевдонимов полей в моих запросах.