vb.net combobox.valuemember 查询?
vb.net combobox.valuemember query?
您好,我有以下代码可以从数据库中提取信息 table
Private Sub frm_8_IncidentResponseSelect_Load(sender As Object, e As EventArgs) Handles MyBase.Load
txt_incidentid.Text = frm_6_UpdateIncident.txt_incidentid.Text
Dim dt As New DataTable
Dim query As String = "select [response id] as responseid, " & _
" ([response ID] &' '&[response date]) As responsedetails " & _
" from response where [incident id] = " & txt_incidentid.Text & " "
Using connection As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Kevin\Desktop\Non Conformance\NonConformance.accdb")
Using command As New OleDbCommand(query, connection)
Using adapter As New OleDbDataAdapter(command)
connection.Open()
adapter.Fill(dt)
connection.Close()
End Using
End Using
End Using
If dt.Rows.Count > 0 Then
cb_responseid.DataSource = dt
cb_responseid.DisplayMember = "responsedetails"
cb_responseid.ValueMember = "responseid"
End If
end sub
根据这段代码,在组合框中查看时,我可以看到显示了以下选项
14 年 2 月 15 日
15 年 2 月 15 日
这是预期的,然后我添加了以下代码以测试在突出显示组合框选项之一后 returned 的值成员
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MsgBox(cb_responseid.ValueMember)
end sub
基于此代码,我希望消息框的值是 return 14 或 15,但它只显示 'responseid'
这是什么原因造成的?我如何让它按预期显示,或者这不可能?
感谢阅读
ValueMember 属性 是数据源列的名称,用于将项目的值保存在组合框中。
如果您想获得该项目的价值,您应该使用 SelectedValue 属性
你应该注意这个 属性 不为空,你应该将它的值转换为正确的数据类型(当然,如果你 运行 你的项目最好使用 Option Strict On,那么这是必需的练习)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim curValue As Integer
if cb_responseid.SelectedValue IsNot Nothing then
curValue = DirectCast(cb_responseid.SelectedValue, Integer)
MsgBox(curValue)
End if
end sub
您好,我有以下代码可以从数据库中提取信息 table
Private Sub frm_8_IncidentResponseSelect_Load(sender As Object, e As EventArgs) Handles MyBase.Load
txt_incidentid.Text = frm_6_UpdateIncident.txt_incidentid.Text
Dim dt As New DataTable
Dim query As String = "select [response id] as responseid, " & _
" ([response ID] &' '&[response date]) As responsedetails " & _
" from response where [incident id] = " & txt_incidentid.Text & " "
Using connection As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Kevin\Desktop\Non Conformance\NonConformance.accdb")
Using command As New OleDbCommand(query, connection)
Using adapter As New OleDbDataAdapter(command)
connection.Open()
adapter.Fill(dt)
connection.Close()
End Using
End Using
End Using
If dt.Rows.Count > 0 Then
cb_responseid.DataSource = dt
cb_responseid.DisplayMember = "responsedetails"
cb_responseid.ValueMember = "responseid"
End If
end sub
根据这段代码,在组合框中查看时,我可以看到显示了以下选项
14 年 2 月 15 日
15 年 2 月 15 日
这是预期的,然后我添加了以下代码以测试在突出显示组合框选项之一后 returned 的值成员
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MsgBox(cb_responseid.ValueMember)
end sub
基于此代码,我希望消息框的值是 return 14 或 15,但它只显示 'responseid'
这是什么原因造成的?我如何让它按预期显示,或者这不可能?
感谢阅读
ValueMember 属性 是数据源列的名称,用于将项目的值保存在组合框中。
如果您想获得该项目的价值,您应该使用 SelectedValue 属性
你应该注意这个 属性 不为空,你应该将它的值转换为正确的数据类型(当然,如果你 运行 你的项目最好使用 Option Strict On,那么这是必需的练习)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim curValue As Integer
if cb_responseid.SelectedValue IsNot Nothing then
curValue = DirectCast(cb_responseid.SelectedValue, Integer)
MsgBox(curValue)
End if
end sub