如何将数据库值提取到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"的表达式
我该如何解决这个问题?
错误告诉您不能像那样获得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
上设置DataTextField
和DataValueField
值。