combobox
错误::无法在具有空 ValueMember 的 ListControl 中设置 SelectedValue。但是我在窗体中已经写明了:
ComboBox2.DataSource = DataSet11
ComboBox2.DisplayMember = "t1.name"
ComboBox2.ValueMember = "t1.name"
这是为什么?
问题点数:20、回复次数:18Top
1 楼Immeup(lishelixin)回复于 2003-11-04 13:04:43 得分 0
如果你的数据源配置没问题,你应该是少了填充数据集,加入下列语句就可以了
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
OleDbDataAdapter1.Fill(DataSet11)
End SubTop
2 楼junyimei(加油:)我要小星星!)回复于 2003-11-04 14:07:30 得分 0
这句我已经有了,而且下拉框中的值是可以显示的。只是在单击的时候,出现这个错误,另外这段代码是写在Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load中的。Top
3 楼zjao99(祖儿)回复于 2003-11-04 14:38:29 得分 0
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.SqlDataAdapter1.Fill(Me.DataSet11)
ComboBox1.DataSource = Me.DataSet11
ComboBox1.DisplayMember = "t1.name"
ComboBox1.ValueMember = "t1.name"
End Sub
这样填充COMBOBOX没有问题呀.Top
4 楼Immeup(lishelixin)回复于 2003-11-04 15:09:14 得分 0
楼上是对的,如果再不行,你把代码粘出来看看。Top
5 楼junyimei(加油:)我要小星星!)回复于 2003-11-04 17:11:25 得分 0
我的代码就这么简单,会不会是缺了什么东西!
Top
6 楼junyimei(加油:)我要小星星!)回复于 2003-11-05 09:17:27 得分 0
up
Top
7 楼CMIC(大象)回复于 2003-11-05 20:03:49 得分 0
这句我已经有了,而且下拉框中的值是可以显示的。只是在单击的时候,出现这个错误,另外这段代码是写在Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load中的。
--------------------------------------------------
把你单击的时候的代码贴出来。Top
8 楼smbee(小蜜蜂)回复于 2003-11-05 20:21:21 得分 0
呵呵,仔细检查代码吧,大家都没错,是你代码里有多余的东西,设置断点调试Top
9 楼junyimei(加油:)我要小星星!)回复于 2003-11-06 10:07:44 得分 0
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
myrec1.Find("id=" & "'" & Trim(ComboBox1.Text) & "'")
If Not (myrec1.BOF And myrec1.EOF) Then
MsgBox("查询成功")
End If
End Sub
我没写combobox的click代码,只写了这段查询代码
Top
10 楼rock29(rock)回复于 2003-11-06 10:16:19 得分 0
1.看来你用的是ado而非ado.net
2.是不是当id=combobox1.text时,t1.name有空值?
3.不对呀,你既然用了ado,哪哪里来的dataset?如果不是ado,那又怎么出来.EOF和.BOF属性?Top
11 楼junyimei(加油:)我要小星星!)回复于 2003-11-06 10:20:49 得分 0
我把ado,ado.net
同时使用,不可以吗?重要的是,加不加这段代码,都会有这个错误Top
12 楼junyimei(加油:)我要小星星!)回复于 2003-11-06 10:24:03 得分 0
可是现在最痛苦的是:http://expert.csdn.net/Expert/topic/2432/2432415.xml?temp=.7981378我什么都干不了了,没有办法试验我de本意,是如果实在找不到错误,我只能用ado的方法了
Top
13 楼rock29(rock)回复于 2003-11-08 17:15:54 得分 0
ado.net是断开连接数据处理方式,也就是说读完数据就断开连接,处理完数据再连接更新,而ado是连接数据处理方式,只要你不关闭连接就永远和表相连,这好像是个排它的处理方式,那么当ado.net更新数据时,表却被ado占据着,怎能更新呢?Top
14 楼chinanewway(新路了无痕)回复于 2003-11-08 17:55:28 得分 0
不知怎么回事,combobox在他人机器上都没事,但是在我的机子上总是无法正常显示数据,感觉上就是它把库中的所有数据都在combobox中同时显示出来,谁能告诉我为什么Top
15 楼junyimei(加油:)我要小星星!)回复于 2003-11-11 12:37:49 得分 0
怎样才能使combobox中的值是不重复的呢?
Top
16 楼junyimei(加油:)我要小星星!)回复于 2003-11-13 10:04:28 得分 0
up
Top
17 楼junyimei(加油:)我要小星星!)回复于 2003-11-14 09:46:17 得分 0
upTop
18 楼rock29(rock)回复于 2003-11-18 09:54:54 得分 20
同时填充3个combobox的例子:
Private Sub InputComboBox()
If MainConnection.State = ConnectionState.Closed Then MainConnection.Open()
SSql = "Select 人员姓名 from pc_person Where 职务='调度员';" & _
"Select 时段名 from pc_time Where 当前时段=1;" & _
"Select 班次名 from pc_ban Where 当前班次=1;" & _
"Select * from pc_workmen Where 班组类型=1"
cmd = New SqlCommand(SSql, MainConnection)
rd = cmd.ExecuteReader
If rd.Read Then TextBox1.Text = Trim(rd("人员姓名"))
rd.NextResult()
Do While rd.Read
ComboBox1.Items.Add(Trim(rd("时段名")))
Loop
rd.NextResult()
Do While rd.Read
ComboBox2.Items.Add(Trim(rd("班次名")))
Loop
rd.NextResult()
If rd.Read Then
ComboBox1.Text = IIf(rd("时段") Is DBNull.Value, "", rd("时段"))
ComboBox2.Text = IIf(rd("班次") Is DBNull.Value, "", rd("班次"))
TextBox1.Text = IIf(rd("调度员") Is DBNull.Value, "", rd("调度员"))
End If
rd.Close()
cmd.Dispose()
If MainConnection.State = ConnectionState.Open Then MainConnection.Close()
End SubTop




