Что нужно сделать, чтобы свести к минимуму состояния, если еще на контрольной
У меня есть вид сетки, в которой весь вопрос был дисплей от доступа к базе данных. теперь я хочу выполнить операцию поиска в заданных текстовых полях, пользователь может ввести данные в текстовое поле или во все текстовые поля, в зависимости от потребностей пользователя. Мой вопрос - сколько раз условие давалось, чтобы любой пользователь предоставлял информацию в любом текстовом поле, фильтрация выполняется соответствующим образом.
для например: пользователь дал только стандартные и знаки, чем фильтрации должны быть эффективны там, где стандартный = «заданное значение» и знаки = «заданное значение» только
Я дал различные условия на каждом контроле, но его стало слишком огромным кодирование. теперь хочет минимизировать это, поэтому любое предложение должно быть рекомендовано.
Мой код:
private void txt_marks_TextChanged(object sender, EventArgs e)
{
string marks = Convert.ToString(txt_marks.Text);
string q_type = Convert.ToString(cmbQType.SelectedValue);
if (q_type.Contains("[") || q_type.Contains("]") || q_type.Contains("*") || q_type.Contains("%"))
{
q_type = replacestring(q_type);
}
if (btnlanguage.Text != "" && txt_sub.Text != "" && txt_std.Text != "" && cmbQType.SelectedIndex != -1 && txt_marks.Text != "")
{
DataTable dt = main_ds.Tables[0];
dt.DefaultView.RowFilter = String.Format("Subject Like '" + txt_sub.Text.ToString() + "%' and Standard Like '" + txt_std.Text.ToString() + "'and Chapter Like '" + btnlanguage.Text.ToString() + "%' and QuestionType Like '" + q_type + "' and Marks = '" + marks + "'");
DGV_View.DataSource = main_ds.Tables[0].DefaultView;
}
else if (txt_marks.Text != "" && cmbQType.SelectedIndex != -1 && txt_sub.Text != "" && txt_std.Text != "")
{
DataTable dt = main_ds.Tables[0];
dt.DefaultView.RowFilter = String.Format("QuestionType Like '" + q_type + "' and Marks = '" + marks + "' and Subject Like '" + txt_sub.Text.ToString() + "%' and Standard Like '"+ txt_std.Text.ToString()+ "'");
DGV_View.DataSource = main_ds.Tables[0].DefaultView;
}
else if (txt_marks.Text != "" && cmbQType.SelectedIndex != -1 && txt_sub.Text != "")
{
DataTable dt = main_ds.Tables[0];
dt.DefaultView.RowFilter = String.Format("QuestionType Like '" + q_type + "' and Marks = '" + marks + "' and Subject Like '" + txt_sub.Text.ToString() + "%'");
DGV_View.DataSource = main_ds.Tables[0].DefaultView;
}
else if (txt_marks.Text != "" && cmbQType.SelectedIndex != -1)
{
DataTable dt = main_ds.Tables[0];
dt.DefaultView.RowFilter = String.Format(" QuestionType Like '" + q_type + "' and Marks = '" + marks + "'");
DGV_View.DataSource = main_ds.Tables[0].DefaultView;
}
else if (txt_marks.Text != "")
{
DataTable dt = main_ds.Tables[0];
dt.DefaultView.RowFilter = String.Format("Marks = '"+ marks +"'");
DGV_View.DataSource = main_ds.Tables[0].DefaultView;
}
else
{
load_grid_view();
}
Аналогично выше кодирование было сделано для каждого данного элемента управления.
спасибо.
Иисус Христос, который, конечно, какой-то код. На стороне примечания, если вы делаете это 'string marks = Convert.ToString (txt_marks.Text);', почему вы все еще используете 'txt_marks' повсюду? –
Поскольку комбинация txt_Marks с различными элементами управления дает другое условие, предположим, что пользователь может присвоить значение значению стандартных значений, но не субъект, иначе пользователь может дать значение объекта, но не стандартное значение. Я написал все возможное условие, 5 факториальных условий, но хочет минимизировать все. – Mamta