有关combobox不能随着数据而改变的事情请问专家了

IComeFrom 2004-08-03 01:20:35
采用 Dim cmd As New SqlCommand
cmd.Connection = conn
conn.Open()

Dim ds As DataSet
Dim da As SqlDataAdapter

cmd = New SqlCommand("select id,department from department order by department", conn)
ds = New DataSet
da = New SqlDataAdapter(cmd)
da.Fill(ds)

Me.ComboBox1.DataSource = ds.Tables(0)
Me.ComboBox1.DisplayMember = "department"
Me.ComboBox1.ValueMember = "id"

这样绑定的combobox,为什么在手工修改了selectedvalue 或者 selectedindex 以后,如果出现 value 是空值 和实际数值 交替变换几次以后,即使设定的是数据源的数值或者直接设定selctindex都可能出现不能正确相应数值数值的情况而表现为空的情况?是 bug吗/
...全文
175 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujiayu10 2004-08-03
  • 打赏
  • 举报
回复
Dim myDs As DataSet = UDB.GetAll("User")
CBUser.DataSource = myDs.Tables(0).DefaultView
CBUser.DisplayMember = myDs.Tables(0).Columns(0).ToString()
CBUser.ValueMember = myDs.Tables(0).Columns(1).ToString()

Private Sub CBUser_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CBUser.SelectedIndexChanged
TBPass.Focus()
End Sub
follyfour 2004-08-03
  • 打赏
  • 举报
回复
我前几天也碰到同样问题,我是这样解决的

设计时databindings.text绑定到要存储的数据库字段,程序中
Private Sub ComboBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.Enter

Dim username As DataRow
For Each username In UserDataset1.Tables("vbuser").Rows
If username.Item("权限") = 2 Then
ComboBox1.Items.Add(username.Item("姓名"))
End If
Next
End Sub

我发现怎么用datasource...都会出现不能实时反映的情况,就算库中不是空值,是个" "也是一样。所以我用了combobox1.item
tendotnet 2004-08-03
  • 打赏
  • 举报
回复
不太明白你的意思,如果是ComboBox出现空项的情况,请检查数据库相应的项是否为空。因为如果中途的几项为空的话,它照样被绑定到ComboBox,所以就有空项。

16,555

社区成员

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

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