以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- ComboBox 如何绑定使用sqlcommand 查询出来的表 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=133087) |
-- 作者:jeeter -- 发布时间:2019/4/6 12:01:00 -- ComboBox 如何绑定使用sqlcommand 查询出来的表 发现DataSource 是String类型的 无法绑定 那要怎么样绑定? Dim cmd As new SQLCommand("test_db") cmd.CommandText="selec t id,name from pcs_pro" Dim dt As DataTable = cmd.ExecuteScalar() Dim cb As WinForm.ComboBox = e.Form.Controls("ComboBox1") cb.DataSource=dt cb.ValueMember="id" cb.DisplayMember="name"
|
-- 作者:有点蓝 -- 发布时间:2019/4/6 12:05:00 -- 无法绑定,只能这样用 Dim cb As WinForm.ComboBox = e.Form.Controls("ComboBox1") cb.ComboList = dt.GetComboListString("id") |
-- 作者:jeeter -- 发布时间:2019/4/6 12:09:00 -- id 是一窜数字 谁看得懂啊 晕 |
-- 作者:有点蓝 -- 发布时间:2019/4/6 13:56:00 -- 那就要做自定义下拉窗口了:http://www.foxtable.com/webhelp/scr/2466.htm |
-- 作者:jeeter -- 发布时间:2019/4/6 14:06:00 -- 只能先这样了 为了一个小功能 就得去设计一个窗口 晕 |
-- 作者:有点蓝 -- 发布时间:2019/4/6 14:33:00 -- 可以做一个通用的下拉窗口,如果碰到同样的问题就可以重用了 |
-- 作者:chnfo -- 发布时间:2019/4/6 20:44:00 -- 你既然想下拉显示name,那意思很明显,name是不重复的。 做一个窗口下拉,还有其它的麻烦。 1、下拉窗口的高度是固定的,下拉即使只有一条,也显示得比较高 2、下拉窗口还要设一堆代码,维护起来也挺麻烦的 如果用GetComboListString,只有一点不爽,就是下拉列表最多只有6行,如果行数较多,是用滚动条。 本来以前也建议过,最好能显示出10行左右的,但没有回复
Dim cb As WinForm.ComboBox = e.Form.Controls("ComboBox1") cb.ComboList = dt.GetComboListString("name") 如果要读取选定的行对应的ID,可以用 dim dr as datarow = dt.find("Name = \'" & cb.value & "\'") if dr isnot nothing then output.show(dr("ID")) end if [此贴子已经被作者于2019/4/6 20:47:02编辑过]
|
-- 作者:jeeter -- 发布时间:2019/4/6 21:12:00 -- name 在数据库中不是唯一的 有重复 selec t id,name from pcs_pro 这里我where 条件没写出来 where userid =@userid 如果是唯一的话 这个问题不存在 要不然就是 得在你的这个方法上 再过滤用户
[此贴子已经被作者于2019/4/6 21:13:34编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/4/7 9:46:00 -- 那你就用querybuilder吧,如
http://www.foxtable.com/webhelp/scr/0695.htm
|