私はすべての質問は、Accessデータベースから表示されたグリッドビューを持っているのであれば、他の条件を最小限にするために何をすべきか。今は、特定のテキストボックスで検索操作を実行したい、ユーザーが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の組み合わせは異なる条件を与えているので、ユーザーが標準値の値をvalueに与えてもsubjectは与えないかもしれないと仮定します。 – Mamta