我使用的代码与此类似,用于从数据库中填充组合框的组合框。显示效果很好,但是当我尝试获取combobox.SelectedValue
时,它返回一个DataRowView,我需要一个整数。很明显,这是因为我没有将值转换为整数,但函数CInt(cboPosition.SelectedValue)
正在抛出一个InvalidCastException异常。有什么方法可以让ValueMember的类型成为Integer?如何从使用DataTable作为DataSource的ComboBox获取Integer值
Dim cn As New SqlConnection(CreditDisputesLogConn)
Dim cmd As New SqlCommand("CustomersLookup", cn)
Dim da As New SqlDataAdapter(cmd)
cmd.CommandType = CommandType.StoredProcedure
Try
Dim dt As New DataTable
da.Fill(dt)
uxCustomerName.DataSource = dt
uxCustomerName.DisplayMember = "CustomerName"
uxCustomerName.ValueMember = "CustomerID"
uxCustomerName.SelectedIndex = -1
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
cn.Close()
cn.Dispose()
End Try
正如我所说的,上面的代码仅是相似的。我正在使用_does_的存储过程返回ID和Description字段;该部分工作正常。问题是,SelectedValue的类型是'DataRowView' – 2010-06-23 23:52:37
我编辑了答案以显示我正在使用的查找的实际代码。 – 2010-06-23 23:53:47
只是为了确保:你*是*使用'SelectedValue'而不是'SelectedItem',对吗?我已经更新了我的答案。 – Heinzi 2010-06-24 00:01:58