나는 모든 질문에 액세스 데이터베이스에서 표시되어있는 그리드보기가에있는 경우 다른 사람의 상태를 최소화하기 위해 수행 할 작업. 이제 주어진 텍스트 상자에서 검색 작업을 수행하고, 사용자가 1 텍스트 상자 또는 모든 텍스트 상자에 데이터를 입력 할 수 있으며 사용자 요구에 따라 다릅니다. 내 질문은 조건이 주어진 횟수에 따라 사용자가 텍스트 상자에 정보를 입력하면 그에 따라 필터링이 수행됩니다. 예를 들어 대한
은 : 사용자는 표준 준 표준 = "주어진 값"과 마크 = "주어진 값"만
내가 각 컨트롤에 다양한 조건을 부여하지만 너무 큰되고있다 곳 여과 이상의 마크는 수행해야합니다 코딩. 이제 이것을 최소화하여 권장 할만한 제안을하십시오.
내 코드 : 마찬가지로 코딩 위
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 조합이 다른 조건을 제공하기 때문에 사용자가 표준 값을 표시 할 수 있지만 subject가 아닌 다른 값을 부여 할 수 있다고 가정합니다. 가능한 모든 조건, 5 가지 요인 조건을 작성했지만 모두 최소화하려고합니다. – Mamta