Я работаю над веб-формой, которая получает строку, содержащую инструкцию SQL-запроса с параметрами SQL. Он генерирует элемент управления ASP.NET для каждого параметра, а затем присваивает значение каждого элемента управления параметрам строки запроса SQL, которые будут использоваться SqlCommand
для заполнения DataAdapter
.Манипулировать необязательные параметры в предложении WHERE
У меня есть некоторые проблемы для управления дополнительными параметрами.
Ex.
1) Передать строку на странице:
string query = "SELECT * FROM Table WHERE [email protected] AND [email protected]";
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 ,
Вы можете мне помочь?
* UPDATE * Я не могу отредактировать запрос, который я получаю, потому что он содержит очень сложные операторы SQL.
Спасибо, что это очень хорошая идея, но я не могу изменить запрос, а затем добавить, потому что запрос получен через XML-файл, который я читаю, и часто его очень сложно разложить из-за сложности инструкции SQL. – Teo
Вы должны обновить свой вопрос, чтобы показать это. Единственное решение, которое я вижу тогда, - это компонент, который анализирует полученный запрос и реконструирует его. –