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

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

Сообщение Anonymous »

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

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

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

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

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

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

SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.AddWithValue("@P1", P1.Text);
cmd.Parameters.AddWithValue("@P2", P2.Text);
  • Вот здесь все в порядке!
Но если параметр НЕОБЯЗАТЕЛЬНЫЙ, как я могу им управлять?
Если 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#»