Управление необязательными параметрами в предложении 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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