1

dropdownlistother から選択した roomtype に従って、部屋番号を入力したいと思いdropdownlistます。dropdownただし、他の値から roomtype を選択すると、毎回dropdown複製されます。これがSQLテーブルとプログラムです。

Room num, Room type,  Cost,    Status
A1        AC          223     Av
B2        Non Ac      180     Av

public partial class customer_reservation : System.Web.UI.Page
{
    string connectionString = WebConfigurationManager.ConnectionStrings["newdb"].ConnectionString;
   protected void Page_Load(object sender, EventArgs e)
   { 
   }
   protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
   {

    string rval = DropDownList1.SelectedValue.ToString();

    SqlConnection con = new SqlConnection(connectionString);
    con.Open();
    string qry = "select Roomnum from room where rtype=@rval and rstatus like 'AV'";
    SqlCommand cmd = new SqlCommand(qry,con);
    cmd.Parameters.AddWithValue("@rval",rval);
    SqlDataReader rd1 = cmd.ExecuteReader();

        if (rd1.HasRows)
        {
            while (rd1.Read())
            {
                DropDownList2.Items.Add(rd1[0].ToString());
            }
        }
        con.Close();
   }
}
4

3 に答える 3

0

これを修正する最も簡単な方法は、2 番目のドロップダウン リストのアイテム コレクションをクリアしてから、データの入力を開始することです。

シンプルDropDownList2.Items.Clear()でうまくいくはずです。

于 2013-10-14T11:40:05.000 に答える
0

これを使って

DropDownList2.Items.Clear();

あなたの機能にビーニングDropDownList1_SelectedIndexChanged

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    DropDownList2.Items.Clear();
    string rval = DropDownList1.SelectedValue.ToString();

    SqlConnection con = new SqlConnection(connectionString);
    con.Open();
    string qry = "select Roomnum from room where rtype=@rval and rstatus like 'AV'";
    SqlCommand cmd = new SqlCommand(qry,con);
    cmd.Parameters.AddWithValue("@rval",rval);
    SqlDataReader rd1 = cmd.ExecuteReader();
    if (rd1.HasRows)
    {
        while (rd1.Read())
        {
                DropDownList2.Items.Add(rd1[0].ToString());
        }
    }
    con.Close();
}
于 2013-10-14T11:42:14.403 に答える