访问数据绑定组合框 c#
Access databound combo box c#
组合框控件有问题。从数据库中检索项目,但它不允许我通过 SelectedValue 属性.
访问它我试过这样设置:
DataSet ds = retrieveData(); //I am calling a procedure, it works fine
myComboBox.DataSource = ds;
myComboBox.DisplayMember = "COLUMN1";
myComboBox.ValueMember= "COLUMN2";
但这行不通。组合框中的文本是
System.Data.DataViewManagerListItemTypeDescriptor
所以我这样做了:
foreach (DataRow dr in ds.Tables[0].Rows)
{
myComboBox.Items.Add(
new { TEXT = dr["COLUMN1"].ToString(),
VALUE = Convert.ToInt32(dr["COLUMN2"].ToString())
});
}
现在可以了。但我必须访问索引 (myComboBox.IndexOf("Text inside")
) 而不是值(这是主键,因此保证是唯一的)。 SelectedValue 始终为 null,SelectedIndex 是一个匿名对象,我也无法访问这些字段!
有什么帮助吗?
您应该将 ComboBox 绑定到 DataTable
对象而不是 DataSet
。
目的。那将解决您的目的。此外,确保 DropDownStyle
属性 设置为 DropDownList
。 (通过这种方式,用户被迫 select 列表中的值而不是键入。)
myComboBox.DataSource = ds.Tables[0];