Vb.net 如何从链接到SQL DB的组合框的第二列中获取值

Vb.net 如何从链接到SQL DB的组合框的第二列中获取值,vb.net,Vb.net,我已经构建了一个WindowForm应用程序,它有一个组合框,该组合框有一个到SQL数据库和文本框视图的数据绑定模式 视图查询:“从[CompanyRefTable]中选择[CompanyName],CountryName” 组合框的成员如下所示: 数据源:CDAllentiesListBindingSource DisplayMember:公司名称 ValueMember:公司名称 SelectedValue:CompanyName 我对代码做了一些修改(第页更新) 现在我从第二列获取值:)

我已经构建了一个WindowForm应用程序,它有一个组合框,该组合框有一个到SQL数据库和文本框视图的数据绑定模式

视图查询:“从[CompanyRefTable]中选择[CompanyName],CountryName”

组合框的成员如下所示: 数据源:CDAllentiesListBindingSource DisplayMember:公司名称 ValueMember:公司名称 SelectedValue:CompanyName

我对代码做了一些修改(第页更新)

现在我从第二列获取值:)

我的代码:

    Dim rowView As DataRowView = TryCast(Me.cmbEntity.SelectedItem, DataRowView)
    If (Not rowView Is Nothing) Then
        Dim row As DataRow = rowView.Row
        Dim subjectName As String = DirectCast(row.Item("CountryName"), String)
        Me.txtCountry.Text = subjectName.ToString
    End If

谢谢你的帮助

感谢:jmcilhinney的评论,它帮助我找到了解决方案:)

我在互联网上找到了解决问题的方法:

    Dim rowView As DataRowView = TryCast(Me.cmbEntity.SelectedItem, DataRowView)
    If (Not rowView Is Nothing) Then
        Dim row As DataRow = rowView.Row
        Dim subjectName As String = DirectCast(row.Item("CountryName"), String)
        Me.txtCountry.Text = subjectName.ToString
    End If

可能的重复,我相信此线程将进一步解释并回答有关您收到的错误的详细信息。没有链接到SQL DB的组合框。假设实际情况是,您正在从SQL Server填充
数据表
,然后通过
BindingSource
将其绑定到
组合框
DataTable
是一个
DataTable
。数据来源与控件无关。
SelectedValue
ValueMember
指定的列中的值。它真的有意义吗
CountryName
值,索引该值,然后对结果调用
ToString
?那是修辞。这没有道理。我想你实际上要做的是获取整行,然后从索引0处的列中获取一个值。在这种情况下,您需要的是
SelectedItem
,而不是
SelectedValue
,尽管使用
BindingSource
Current
属性更合适。然后强制转换为type
DataRowView
,然后按列名或序号对其进行索引。您必须首先检查
SelectedIndex
是否为
-1
,这种情况经常发生。然后,
Me.cmbEntity.SelectedValue(1).ToString
?SelectedValue是当前
SelectedItem
的当前值,对应于
ValueMember
。瞧,谢谢你的帮助。