VB下拉列表框的选择项改变事件

nyxuem 2012-08-02 10:01:15
以下是我的某个窗体的加载和下拉框列表选择项改变事件
不写下拉框列表选择项改变事件时一切正常,省份正确读取并绑定到下拉框列表中,但
写了下拉框列表选择项改变事件后,就报错了,错误:从类型“DataRowView”到类型“Integer”的转换无效。对应红色字体

Private Sub ProviceCityForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim conStr As String
conStr = "Data Source=.;Initial Catalog=MyTestDB;Integrated Security=True"
Dim con As New SqlConnection(conStr)

'查询所有省份
Dim sql As String
sql = "SELECT * FROM [MyTestDB].[dbo].[provinceCity] WHERE ParentId = 0"
Dim adapter As New SqlDataAdapter(sql, con)
Dim ds As New DataSet()
adapter.Fill(ds)
'绑定所有省份下拉列表框
Me.cboProvice.DataSource = ds.Tables(0)
Me.cboProvice.DisplayMember = "Name"
Me.cboProvice.ValueMember = "ID"
End Sub

Private Sub cboProvice_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboProvice.SelectedIndexChanged
Dim conStr As String
conStr = "Data Source=.;Initial Catalog=MyTestDB;Integrated Security=True"
Dim con As New SqlConnection(conStr)

'查询所有省份
Dim pId As Integer
pId = Me.cboProvice.SelectedValue
Dim sql As String
sql = "SELECT * FROM [MyTestDB].[dbo].[provinceCity] WHERE ParentId = " & pId
Dim adapter As New SqlDataAdapter(sql, con)
Dim ds As New DataSet()
adapter.Fill(ds)
'绑定所有省份下拉列表框
Me.cboCity.DataSource = ds.Tables(0)
Me.cboCity.DisplayMember = "Name"
Me.cboCity.ValueMember = "ID"
End Sub
...全文
2159 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
nyxuem 2012-08-07
  • 打赏
  • 举报
回复
回复ChataoCoding:这样写过后,执行到 Me.cboProvice.ValueMember = "ID"时,跳到
rv = Me.cboProvice.SelectedValue这句话,还是报错:无法将int32类型强制转换成DataRowView类型

回复hmc108:怎么删除cboProvice_SelectedIndexChanged的监听?具体代码有吗?
nyxuem 2012-08-07
  • 打赏
  • 举报
回复
已解决,受ChataoCoding启发。谢谢大家。
nyxuem 2012-08-06
  • 打赏
  • 举报
回复
谁知道怎么弄?
hmc108 2012-08-06
  • 打赏
  • 举报
回复
在load的事件中,开始的地方删除cboProvice_SelectedIndexChanged的监听,在结束处在添加上
ChataoCoding 2012-08-06
  • 打赏
  • 举报
回复
下拉框用绑定的话读出来的项类型是DataRowView.


Dim pId As Integer
Dim rv As DataRowView
rv = Me.cboProvice.SelectedValue
pId = rv("列名")

nyxuem 2012-08-03
  • 打赏
  • 举报
回复
图片指: '绑定所有省份下拉列表框 下面的那句话:Me.cboProvice.DataSource = ds.Tables(0)
nyxuem 2012-08-03
  • 打赏
  • 举报
回复
调试时,发现经过Load事件的这句话就跳到红色字体。
nyxuem 2012-08-03
  • 打赏
  • 举报
回复
嗯,是的,是从数据库读出来的ID值。
swinda009 2012-08-03
  • 打赏
  • 举报
回复
搞错了,没仔细看改为
swinda009 2012-08-03
  • 打赏
  • 举报
回复
改为Me.cboProvice.text
BossProgrammer 2012-08-02
  • 打赏
  • 举报
回复
Me.cboProvice.SelectedValue,这是你下拉框中选中的数据吧,是数字吗?

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧