2011-05-13 114 views
0

我想將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屬性。請建議我以最好的方式做到這一點。

回答

1

您應該使用某種類型的列表,例如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();