Управление необязательными параметрами в предложении WHEREC#

Место общения программистов C#
Anonymous
Управление необязательными параметрами в предложении WHERE

Сообщение Anonymous »

Я работаю над веб-формой, которая получает строку, содержащую оператор запроса SQL с параметрами SQL. Он создает элемент управления ASP.NET для каждого параметра, а затем присваивает значение каждого элемента управления параметрам строки запроса SQL, которая будет использоваться SqlCommand для заполнения DataAdapter.

У меня возникли некоторые проблемы с управлением необязательными параметрами.

Пример.

1) Передайте строку на страницу:

Код: Выделить всё

string query = "SELECT * FROM Table WHERE Field1=@P1 AND field2=@P2";
2) Создайте веб-элемент управления для каждого параметра

Код: Выделить всё

TextBox P1 = new TextBox();
P1.ID = "P1";
...
TextBox P2 = new TextBox();
P2.ID = "P2";
...
PanelParameters.Controls.Add(P1);
PanelParameters.Controls.Add(P1);
3) При нажатии передайте значение каждого параметра в SqlCommand в качестве параметров:

Код: Выделить всё

SqlCommand cmd = new SqlCommand(query, conn);

cmd.Parameters.AddWithValue("@P1", P1.Text);

cmd.Parameters.AddWithValue("@P2", P2.Text);
4) Здесь все в порядке!

Но если параметр НЕОБЯЗАТЕЛЬНЫЙ, как я могу им управлять?

Если P2 был необязательным, пользователь не мог его скомпилировать, и в этом случае я не хочу устанавливать P2 = NULL (устанавливая значение параметр DbNull.Value), но я бы хотел, чтобы P2 исчез из запроса SQL.

Можете ли вы мне помочь?

* ОБНОВЛЕНИЕ *
Я не могу редактировать полученный запрос, поскольку он содержит очень сложные операторы SQL.

Подробнее здесь: https://stackoverflow.com/questions/159 ... ere-clause

Вернуться в «C#»