我找不到原因,为什么在我的情况下,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 ......”
一定是蠢事......
此致
橡树
答案 0 :(得分:0)
我认为你可能误解了ValueMember
的作用。你是如何实际获得这些" PID"值?你是从ValueMember
财产得到的吗?如果是这样,那么这正是您所期望的,因为这是您首先分配给它的内容。
ValueMember
是SelectedValue
获取其值的列的名称。当用户通过其" Desc"选择项目时值,SelectedValue
属性将返回相应的" PID"值。