Может ли конструктор DataSet в VS2010 поддерживать необязательные параметры? - PullRequest
0 голосов
/ 05 октября 2011

Мне нравятся многие встроенные функции, предоставляемые встроенным конструктором DataSet в VS2010, и я не хочу переходить на что-то совершенно другое, если это вообще возможно. Проблема в том, чтобы иметь необязательные параметры, мне нужно создавать совершенно независимые функции для каждой комбинации параметров. Таким образом, для 6 параметров мне потребуется 63 различных функции. Это очевидно совершенно неуправляемо.

Есть ли способ иметь одну функцию, которая ТОЛЬКО добавляет параметр в сгенерированное предложение WHERE моего SQL, если он имеет значение, а в противном случае игнорирует его?

1 Ответ

2 голосов
/ 05 октября 2011

Вы можете добавить эти дополнительные параметры в WHERE-предложение с помощью ISNULL :

WHERE (YourTable.Column = ISNULL(@Column, YourTable.Column))

Таким образом, SQL работает с или без (необязательного) параметра.Если значение равно нулю, это не повлияет на результат.Вам нужно только добавить все параметры в коллекцию параметров DataAdapter (необязательно с AllowDbNull = true).Но я уверен, что они будут добавлены автоматически.

...