数据源绑定到列表框
问题描述:
我想将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();