Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问数据绑定组合框c_C#_.net_Winforms_Combobox_Selectedvalue - Fatal编程技术网

C# 访问数据绑定组合框c

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

我对组合框控件有问题。项目是从数据库中检索的,但它不允许我通过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.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