数据源绑定到列表框

问题描述:

我想将OleDbDataReader绑定到列表框。我已经得到了与数据库值的读者,我使用以下代码进行绑定:数据源绑定到列表框

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的dataValue属性。请建议我以最好的方式做到这一点。

您应该使用某种类型的列表,例如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();