首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

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

2012-08-28 
VB下拉列表框的选择项改变事件以下是我的某个窗体的加载和下拉框列表选择项改变事件不写下拉框列表选择项

VB下拉列表框的选择项改变事件
以下是我的某个窗体的加载和下拉框列表选择项改变事件
不写下拉框列表选择项改变事件时一切正常,省份正确读取并绑定到下拉框列表中,但
写了下拉框列表选择项改变事件后,就报错了,错误:从类型“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

[解决办法]
Me.cboProvice.SelectedValue,这是你下拉框中选中的数据吧,是数字吗?
[解决办法]
改为Me.cboProvice.text
[解决办法]
下拉框用绑定的话读出来的项类型是DataRowView.

VB.NET code
Dim pId As IntegerDim rv As DataRowViewrv = Me.cboProvice.SelectedValuepId = rv("列名")
[解决办法]
在load的事件中,开始的地方删除cboProvice_SelectedIndexChanged的监听,在结束处在添加上

热点排行