带有数据库连接的下拉列表

时间:2019-04-08 10:07:57

标签: c# asp.net c#-4.0

我一直试图将数据填充到数据库的下拉列表中。我想从两个下拉列表中选择值,并想用与数据库中的下拉列表值相对应的数据填充第三个下拉列表。但是第三个ddl将始终为空。

protected void ddl3_SelectedIndexChanged(object sender, EventArgs e)
    {
        DataSet ds = new DataSet();
        ddl3.Items.Clear();
        s = "SELECT subject FROM subjects WHERE branch='" + ddl1.SelectedItem.Value + "' AND sem='" + ddl2.SelectedItem.Value + "'";
        ds = dc.getdata(s);
        for (i = 0; i < ds.Tables[0].Rows.Count; i++)
            ddl3.Items.Add(ds.Tables[0].Rows[i][0].ToString());
    }

假设数据库中的值是branch = IT,sem = I sem和sub = ML。在第一个ddl中选择IT,然后在第二个ddl中选择sem时,第三个ddl应显示ML和与此分支和sem相对应的其他数据。

2 个答案:

答案 0 :(得分:1)

您输入的内容有误,您应按如下所示填写ddl2_SelectedIndexChanged

protected void ddl2_SelectedIndexChanged(object sender, EventArgs e)
    {
        DataSet ds = new DataSet();
        ddl3.Items.Clear();
        s = "SELECT subject FROM subjects WHERE branch='" + ddl1.SelectedItem.Value + "' AND sem='" + ddl2.SelectedItem.Value + "'";
        ds = dc.getdata(s);
        for (i = 0; i < ds.Tables[0].Rows.Count; i++)
            ddl3.Items.Add(ds.Tables[0].Rows[i][0].ToString());
    }

如果将代码写入第二个下拉列表,请选择索引,然后传递dropdown1值和dropdown2值。

相关示例

http://www.dotnetfunda.com/codes/show/5512/dropdownlist-with-country-state-and-city-in-asp-net

答案 1 :(得分:0)

您不想在ddl3处理程序(ddl3_selected_index_changed)中填充依赖于ddl1和2的ddl3,因为在没有可供选择的选项时索引无法更改。填充后,请确保在调用处理程序之前它不会被覆盖。最简单的方法是在PreRender中填充ddl3。但是,这将创建许多不需要的数据库访问。最好在ddl1和ddl2的处理程序中填充ddl3。