Я работаю над веб-формой, которая получает строку, содержащую инструкцию SQL-запроса с параметрами SQL. Он генерирует элемент управления ASP.NET для каждого параметра, а затем назначает значение каждого элемента управления параметрам строки запроса SQL, которая будет использоваться SqlCommand
для заполнения DataAdapter
.
У меня проблемы с настройкой необязательных параметров.
Ex.
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.