数据源绑定到列表框

时间:2011-05-13 02:19:53

标签: c# .net asp.net

我想将OleDbDataReader绑定到Listbox。我有读者的数据库值,我使用以下代码进行绑定

List<String> cat_name = new List<string>();
        while (reader.Read())
        {
            cat_name.Add(reader["cat_name"].ToString());
        }

        ProductMainCategory.DataSource = cat_name;
        ProductMainCategory.DataBind(); 

我从数据库中获取category_id和cat_name。此代码仅使用cat_name设置Listbox Text字段,但我还想填充Listbox的dataValue属性。请以最佳方式向我建议一些好方法。

1 个答案:

答案 0 :(得分:1)

您应该使用某种类型的List,例如KeyValuePair或Tuple或您自己的类来存储这两个值。例如,

var categories = new List<KeyValuePair<string, string>>();
while (reader.Read())
{
   categories.Add(new KeyValuePair<string, string>(reader["category_id "].ToString(), reader["cat_name"].ToString()));
}
ProductMainCategory.DataSource = Categories;
ProductMainCategory.DataValueField = "Key";
ProductMainCategory.DataTextField = "Value";
ProductMainCategory.DataBind();