【发布时间】:2019-07-23 19:12:48
【问题描述】:
我正在尝试从 DataSet 填充 ComboBox,而 DataSet 的一列也应该填充 TextBox。
示例表:
sid | sname | surl
---------------------------
1 | Google | www.google.com
2 | Bing | www.bing.com
3 | Yahoo | www.yahoo.com
现在我想要Google、Bing 等作为组合框中的SelectedText,而SelectedValue 是1、2 等。
当我选择Google 时,我希望将www.google.com 填充到TextBox 中。
代码:
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim tb As DataTable = Dataset1.Table1
ComboBox1.DataSource = tb
ComboBox1.DisplayMember = "sname"
ComboBox1.ValueMember = "sid"
TextBox1.Text = DataSet1.Table1.FindBysid(ComboBox1.SelectedValue).surl
End Sub
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
TextBox1.Text = DataSet1.Table1.FindBysid(ComboBox1.SelectedValue).surl
End Sub
End Class
Afaik,初始选择正常工作。
ComboBox 选择 Google 并将 TextBox1.Text 设置为 www.google.com。
但随后出现以下错误:
System.InvalidCastException:“类型 DataRowView 的无效转换 输入整数。
这发生在SelectedIndexChanged 事件上。
我真的不知道为什么第一个 TextBox 分配工作得很好,而事件中的第二个在转换错误时运行。
有什么建议吗?
【问题讨论】:
标签: .net vb.net winforms data-binding dataset