У меня есть пять условий, которые я должен проверить (т.е. пользователь хочет выполнить поиск с помощью этого поля или нет). Существует четыре поля со списком и одно текстовое поле. Пользователь может выполнять поиск с использованием любого поля или нескольких полей по своему усмотрению. Чтобы проверить, в каком поле выбран пользователь, я построил несколько операторов if и else if. Но когда я делаю это только для двух условий, я понял, насколько утомительной задачей для пяти условий является лучший способ сделать это?Несколько вложенных, если условия
if (cmbAgent.Text=="")
{
if (cmbDegree.Text=="")
{
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM UniversityData", connection);
}
else
{
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM UniversityData WHERE Expertise LIKE '%" + cmbDegree.Text + "%' ", connection);
}
}
else if(cmbDegree.Text=="")
{
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM UniversityData WHERE SourceOfContact LIKE '%"+ cmbAgent.Text + "%' ", connection);
}
else
{
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM UniversityData WHERE SourceOfContact LIKE '%" + cmbAgent.Text + "%' and Expertise LIKE '%" + cmbDegree .Text + "%' ", connection);
}
Не ответ на ваш вопрос, но вы должны, вероятно, пойти и прочитать о [SQL Injection] (https://en.wikipedia.org/wiki/SQL_injection) и как предотвратить его, прежде чем этот код развертывается к производству. –
Рефакторинг. http://www.refactoring.com/catalog/consolidateConditionalExpression.html и http://www.refactoring.com/catalog/consolidateDuplicateConditionalFragments.html – Amit
Пожалуйста, используйте полный верхний регистр для ключевых слов команды, таких как 'SELECT',' FROM' и т. д. on .. Это облегчает понимание команды быстро. :) –