以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]下拉列表的疑问  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=25289)

--  作者:qq121454970
--  发布时间:2012/11/5 23:45:00
--  [求助]下拉列表的疑问

Dim cmd As New SQLCommand
Dim dt As DataTable
Dim lst As WinForm.ListBox = e.Form.Controls("ListBox1")
cmd.C
cmd.CommandText = "SELECT DISTINCT Name From {Users}"  
dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.Datarows
    lst.Items.Add(dr("Name"))
Next
If Lst.Items.Count > 0 Then
    lst.SelectedIndex = 0

End If

 

 

‘为什么将Users其他的名称就不行呢?其他表和Users表都是属于“数据源”中的外部表。试了几个外部表都不行,只有Users 可以,什么情况?

[此贴子已经被作者于2012-11-5 23:46:29编辑过]

--  作者:38585830
--  发布时间:2012/11/5 23:48:00
--  

我也想了解 估计这个点了等明天把

 


--  作者:sloyy
--  发布时间:2012/11/6 0:48:00
--  
其他表有 name 吗?
--  作者:sgs
--  发布时间:2012/11/6 8:06:00
--  

需要确定其他表是否有name字段

另外可以在dt = cmd.ExecuteReader()
后面加个messagebox.show(dt.datarows.count)看看有几个符合条件的行,调试一下

 


--  作者:狐狸爸爸
--  发布时间:2012/11/6 8:13:00
--  

sgs说得对,不会不可以的,要么表名错了,要么列名错了,要么本就没有数据


--  作者:qq121454970
--  发布时间:2012/11/6 8:32:00
--  
说实话,我也觉得奇怪,我在用其他外部表的时候(对应的列也会换的),每次启用都要报警。下面这段代码跟上面代码是一摸一样的,只不过是换了个表名和列名。外部表也是有这个数据表和数据列的。。。。报警的内容好像是,缺少引用(昨天在家里弄,今天在公司,忘记具体的报警内容了)
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim lst As WinForm.ListBox = e.Form.Controls("ListBox1")
cmd.C
cmd.CommandText = "SELECT DISTINCT Name From {基本资料}"
   dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.Datarows
    lst.Items.Add(dr("商品类别"))
Next
If Lst.Items.Count > 0 Then
    lst.SelectedIndex = 0

End If
[此贴子已经被作者于2012-11-6 8:33:55编辑过]

--  作者:lin_hailun
--  发布时间:2012/11/6 8:41:00
--  
以下是引用qq121454970在2012-11-6 8:32:00的发言:
说实话,我也觉得奇怪,我在用其他外部表的时候(对应的列也会换的),每次启用都要报警。下面这段代码跟上面代码是一摸一样的,只不过是换了个表名和列名。外部表也是有这个数据表和数据列的。。。。报警的内容好像是,缺少引用(昨天在家里弄,今天在公司,忘记具体的报警内容了)
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim lst As WinForm.ListBox = e.Form.Controls("ListBox1")
cmd.C
cmd.CommandText = "SELECT DISTINCT Name From {基本资料}"
   dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.Datarows
    lst.Items.Add(dr("商品类别"))
Next
If Lst.Items.Count > 0 Then
    lst.SelectedIndex = 0

End If
[此贴子已经被作者于2012-11-6 8:33:55编辑过]

楼主,你只是取一列 name,你何来的 商品类别?

--  作者:qq121454970
--  发布时间:2012/11/6 8:43:00
--  
列名称就是" 商品类别 " 呢图片点击可在新窗口打开查看


--  作者:lin_hailun
--  发布时间:2012/11/6 8:45:00
--  
以下是引用qq121454970在2012-11-6 8:43:00的发言:
列名称就是" 商品类别 " 呢图片点击可在新窗口打开查看


cmd.CommandText = "SELECT DISTINCT Name From {基本资料}"
dt = cmd.ExecuteReader()

这两句代码,dt只有一列name


--  作者:lyq
--  发布时间:2012/11/6 8:49:00
--  
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim lst As WinForm.ListBox = e.Form.Controls("ListBox1")
cmd.C
cmd.CommandText = "SELECT DISTINCT 商品类别 From {基本资料}"
   dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.Datarows
    lst.Items.Add(dr("商品类别"))
Next
If Lst.Items.Count > 0 Then
    lst.SelectedIndex = 0

End If