C# 在下拉列表中显示DB值

C# 在下拉列表中显示DB值,c#,asp.net,C#,Asp.net,可能重复: 我正在获取DB值并在下拉列表中显示它们。我有国家和州下拉列表: DropDownList1.Items.Add(new ListItem(Session["country"].ToString())); DropDownList2.Items.Add(new ListItem(Session["state"].ToString())); 我无法在DDL中显示DB值。我正在获取-选择一个状态- 在状态下拉列表中,如何在下拉列表中显示DB值 <asp:DropDownList

可能重复:

我正在获取DB值并在下拉列表中显示它们。我有国家和州下拉列表:

DropDownList1.Items.Add(new ListItem(Session["country"].ToString()));
DropDownList2.Items.Add(new ListItem(Session["state"].ToString()));
我无法在DDL中显示DB值。我正在获取-选择一个状态- 在状态下拉列表中,如何在下拉列表中显示DB值

<asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True">
    <asp:ListItem Value="Select a state" >Select a state</asp:ListItem>
    <asp:ListItem Value="value 1" >Maharastra</asp:ListItem>
    <asp:ListItem Value="value 2" >Goa</asp:ListItem>
    <asp:ListItem Value="value 3" >Kashmir</asp:ListItem>
</asp:DropDownList>

那么,您必须以某种方式将ddlist绑定到db结果。看起来像这样:

ddlist1.DataSource = MyDBAccessClass.GetSomeValues();
ddlist1.DataBind();
根据更多评论。。。我得玩一点轮盘赌,猜猜你的意图是什么。您的代码有多个问题,显然您在解释自己时遇到了一些问题

如果我理解正确,你有两个下拉列表。您希望在其中填充国家,并根据选择填充第二个dropdownlist

基本原则如下:

ddlist1.DataSource = MyDBAccessClass.GetSomeValues();
ddlist1.DataBind();
DataAccessClass.cs

public class DataAccessClass
{
    public static IEnumerable<string> GetCountries()
    {
        // access the database and retrieve all the values
        // returns IEnumerable (a list of items)
    }

    public static IEnumerable<string> GetStates(string selectedCountry)
    {
        // access the database and retrieve all the corresponding states
        // linq2sql: var states = from o in db.States
        //                        where o.country = selectedCountry
        //                        select o;
        // returns IEnumerable (a list of items)
    }
}

如果您不能理解这一点,请回到基础知识,或者完全忘记编程。

我建议您像这样使用dropdownlist:

ddl.DataSource = YourDBSource.Get();
ddl.DataBind();
protected void Page_Load(object sender, EventArgs e)
{

        if (!IsPostBack)
        {
            ddlErreur.DataSource = ...;
            ddlErreur.DataTextField = ...;
            ddlErreur.DataBind();
        }
}
然后,您可以决定在此处显示什么:

ddl.DataTextField = ...;

or 

ddl.DataValueField = ...;
首先,没有理由在.aspx页面中构建listItem,因为您将以编程方式填充ddl

其次,我不知道你所说的“我在这里计算DB值并将它们发送到下一页”是什么意思。只需使用数据库上的适当查询填充数据源

如果您想执行更简单的筛选/waht,请尝试使用Linq2SQL

此外,您需要在*页面\加载*中执行此数据绑定,如下所示:

ddl.DataSource = YourDBSource.Get();
ddl.DataBind();
protected void Page_Load(object sender, EventArgs e)
{

        if (!IsPostBack)
        {
            ddlErreur.DataSource = ...;
            ddlErreur.DataTextField = ...;
            ddlErreur.DataBind();
        }
}

您需要将数据源设置为DDL,然后设置要显示的值,然后将其绑定。

问题在于未添加或添加这些值,但它们不是默认值?这不是前面问题的重复,正如您所看到的,我可以在数据表中获得国家和州的名称,但我无法显示名称,因为我在DDL中获得了-select state-如何在DDL中显示确切的州名??选择一个州显然是您的默认值,如果您的DDL列表没有显示除此之外,你根本没有听从我的建议。如果你不合作,我真的帮不了你。如果你不能解释,也许试着展示一下你现在有什么,它应该是什么样子。这就是我得到的@Chandrasekhar不,对不起,我一点也不明白。检查我的答案或解释得很好的沃尔特答案。如果你没有做到这一点,我怀疑关于你问的其他问题,你没有正确的编程背景,你只是在寻找适合你的代码的完美答案。我从数据库中获取值,并将它们传递到下一页,因此我使用session@Chandrasekhar,不管你如何获得你的价值观,无论哪种方式,都需要将它们数据绑定到ddlist。除非您手动迭代并分配集合,否则即使我这样做,我也会得到这样的结果,并且我还必须在DDL中显示相应的状态名称???@Chandrasekhar,您的代码和解释根本没有任何意义。让我告诉你如何正确地做,因为这只是。。。顶多也太可笑了!这就是我用状态填充国家DDL的方法,这样我就知道怎么做了,如果你不能更好地理解我的问题,你也不会回答。你能解释一下吗?我必须为DDL的datatextfield设置什么?也许可以阅读DropDownList控件的文档?谷歌5秒:;请阅读我的完整答案,并尝试自己一点,使其工作,你有所有的信息在这里。你能告诉什么是文本列名称??
DropDownList2.DataSource = {your data source}; 
DropDownList2.DataTextField = "text column name"; 
DropDownList2.DataValueField = "data column name of id"; 
DropDownList2.DataBind();