Vb.net 如何从链接到SQL DB的组合框的第二列中获取值
我已经构建了一个WindowForm应用程序,它有一个组合框,该组合框有一个到SQL数据库和文本框视图的数据绑定模式 视图查询:“从[CompanyRefTable]中选择[CompanyName],CountryName” 组合框的成员如下所示: 数据源:CDAllentiesListBindingSource DisplayMember:公司名称 ValueMember:公司名称 SelectedValue:CompanyName 我对代码做了一些修改(第页更新) 现在我从第二列获取值:) 我的代码:Vb.net 如何从链接到SQL DB的组合框的第二列中获取值,vb.net,Vb.net,我已经构建了一个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
属性更合适。然后强制转换为typeDataRowView
,然后按列名或序号对其进行索引。您必须首先检查SelectedIndex
是否为-1
,这种情况经常发生。然后,Me.cmbEntity.SelectedValue(1).ToString
?SelectedValue是当前SelectedItem
的当前值,对应于ValueMember
。瞧,谢谢你的帮助。