如何将数据库值提取到c#.net中的下拉菜单中

本文关键字:net 下拉菜单 提取 数据库 | 更新日期: 2023-09-27 18:28:09

我的.net应用程序使用mysql数据库。我有一个专栏animal_revatory。我正在尝试将列值提取到下拉列表中。我无法使它工作。

<asp:DropDownList ID="DropDownList1"
                  runat="server" 
                  onselectedindexchanged="DropDownList1_SelectedIndexChanged">
</asp:DropDownList>

代码:

if (!IsPostBack)
{
    string scon = "SERVER=localhost;DATABASE=animal_adoption_site;UID=root;";
    MySqlConnection con = new MySqlConnection(scon);
    String s = "select * from animal_details";
    MySqlDataAdapter dat = new MySqlDataAdapter(s, con);
    DataSet ds = new DataSet();
    DropDownList1.Items.Clear();
    while (ds.Read())
    {
        DropDownList1.Items.Add(new ListItem(ds[0].ToString(), ds[0].ToString()));
    }
    con.Close();
}

我得到

无法将[]索引应用于类型为"System.Data.Datat"的表达式

我该如何解决这个问题?

如何将数据库值提取到c#.net中的下拉菜单中

错误告诉您不能像那样获得DataSet的第一个元素。

你希望这会带来什么回报?

yourDataSet[0].ToString()

如果你想要第一个DataTable,你可能想试试这个:

yourDataSet.Tables[0].ToString()

但是在DataTable上调用ToString()也没有意义。

与其一次填充一条Items集合,不如一次将整个结果集分配给DataSource属性(此外,正如Soner所指出的,您从未实际检索到结果。)

using (var dat = new MySqlDataAdapter(s, con))
{
    var dt = new DataTable();
    dat.Fill(dt);  // retrieve records
    DropDownList1.DataSource = dt;
}

我不确定,但您可能还需要根据DataTable中列的名称在DropDownList上设置DataTextFieldDataValueField值。