0

こんにちは、チェックボックスとチェックボックスリストを使用してデータを検索したいのですが、2 つのチェックボックスを選択した場合、両方のチェックボックス ID のデータを取得したいのですが、このコードは一度に 1 つのデータしか与えていません。このタイプのクエリのデモ コードを教えてください。

プライベートボイドチェックボックスリストバインド(){

    SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\FlagBits\\Documents\\Visual Studio 2010\\WebSites\\checkboxlist\\App_Data\\Database.mdf;Integrated Security=True;User Instance=True");
    con.Open();
    string query = "select * from student where id='" + CheckBox1.Text + "'";
    SqlCommand cmd = new SqlCommand(query, con);
    SqlDataReader dr;
    dr = cmd.ExecuteReader();
    GridView1.DataSource = dr;
    GridView1.DataBind();



}
private void checkboxlistbind2()
{

    SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\FlagBits\\Documents\\Visual Studio 2010\\WebSites\\checkboxlist\\App_Data\\Database.mdf;Integrated Security=True;User Instance=True");
    con.Open();
    string query = "select * from student where id='" + CheckBox2.Text + "'";
    SqlCommand cmd = new SqlCommand(query, con);
    SqlDataReader dr;
    dr = cmd.ExecuteReader();
    GridView1.DataSource = dr;
    GridView1.DataBind();

}


protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{



    if (CheckBox1.Checked == true)
    {
        checkboxlistbind();
    }

}
protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
    if (CheckBox2.Checked == true)
    {
        checkboxlistbind();
        checkboxlistbind2();
    }
4

1 に答える 1

0

チェックボックスリストを反復処理し、各項目の選択された値をテストして、各オプションを含む文字列を作成する必要があります。

    string queryparam = '';
      for (int i=0; i<checkboxlist1.Items.Count; i++) {
         if (checkboxlist1.Items[i].Selected)
            {  queryparam  += (queryparam.Length = 0) ? "id = " + checkboxlist1.Items[i].Text : " or id = "  checkboxlist1.Items[i].Text }
      }

これにより、最初のアイデアが得られるはずです。

于 2013-08-07T12:36:29.953 に答える