从db - ValueMember问题填充Combobox

时间:2014-10-15 20:05:43

标签: vb.net combobox valuemember

我找不到原因,为什么在我的情况下,DisplayMember会正确填充,而ValueMember只会获取一个字符串(列名)。对于不同的组合框,列名和表格也是如此。

            Using comm3 As SqlCommand = New SqlCommand("SELECT PID, RTRIM(Desc) as Desc FROM Conds WHERE Typ = 3", oConn)
                Dim rs As SqlDataReader = comm3.ExecuteReader
                Dim dt As DataTable = New DataTable
                dt.Load(rs)
                cbConditionPayment.ValueMember = "PID"
                cbConditionPayment.DisplayMember = "Desc"
                cbConditionPayment.DataSource = dt
            End Using 'comm3

因此,DisplayMember获取的值类似于“Condition1,Condition2,Condition3,....” ValueMember获取值“PID,PID,PID,PID,......”而不是“1,2,3,18,22 ......”

一定是蠢事......

此致

橡树

1 个答案:

答案 0 :(得分:0)

我认为你可能误解了ValueMember的作用。你是如何实际获得这些" PID"值?你是从ValueMember财产得到的吗?如果是这样,那么这正是您所期望的,因为这是您首先分配给它的内容。

ValueMemberSelectedValue获取其值的列的名称。当用户通过其" Desc"选择项目时值,SelectedValue属性将返回相应的" PID"值。