C# 访问数据绑定组合框c
我对组合框控件有问题。项目是从数据库中检索的,但它不允许我通过SelectedValue属性访问它 我试着这样设置:C# 访问数据绑定组合框c,c#,.net,winforms,combobox,selectedvalue,C#,.net,Winforms,Combobox,Selectedvalue,我对组合框控件有问题。项目是从数据库中检索的,但它不允许我通过SelectedValue属性访问它 我试着这样设置: DataSet ds = retrieveData(); //I am calling a procedure, it works fine myComboBox.DataSource = ds; myComboBox.DisplayMember = "COLUMN1"; myComboBox.ValueMember= "COLUMN2"; 但这是行不通的。组合框中的文本为 S
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.IndexOfText,而不是作为主键的值,因此保证是唯一的。SelectedValue始终为空,SelectedIndex是一个匿名对象,我也无法访问该字段
有什么帮助吗?您应该将组合框绑定到DataTable对象,而不是数据集。 对象那会解决你的目的。此外,请确保DropDownStyle属性设置为DropDownList。这样,用户被迫从列表中选择一个值,而不是键入
myComboBox.DataSource = ds.Tables[0];
您应该将组合框绑定到DataTable对象,而不是数据集。 对象那会解决你的目的。此外,请确保DropDownStyle属性设置为DropDownList。这样,用户被迫从列表中选择一个值,而不是键入
myComboBox.DataSource = ds.Tables[0];
知道为什么第一个例子不起作用会很有趣。第二个无法使用SelectedValue,因为没有绑定的数据源。另请参见@Steve,因为框中的文本是:System.Data.DataViewManagerListemTypeDescriptor。如果您想知道为什么第一个示例不起作用,您会很感兴趣。第二个无法使用SelectedValue,因为没有绑定的数据源。另请参见@Steve,因为框中的文本为:System.Data.DataViewManagerListItemTypeDescriptor