以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  窗口提示错误,请问原因(已解决)  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=12394)

--  作者:yangming
--  发布时间:2011/9/1 13:10:00
--  窗口提示错误,请问原因(已解决)

我按贺老师的示例:自定义用户管理,做了一个用户登录的窗体,在窗口的AfterLoad 事件中写入以下代码:

 

Dim cmd As New SQLCommand
Dim dt As DataTable
Dim cmb As WinForm.ComboBox = e.Form.Controls("用户名")
cmd.C
cmd.CommandText = "SELECT DISTINCT Name From {用户}"
dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.Datarows
   cmb.Items.Add(dr("用户名"))
Next
cmb.SelectedIndex = 0

 

但是在打开此窗口时会提示错误,现在不知这个提示是什么原因?错在何处?我自己认为错在红字部分,但是我查看了,并没有写错啊


图片点击可在新窗口打开查看此主题相关图片如下:窗口提示错误.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2011-9-1 13:51:58编辑过]

--  作者:程兴刚
--  发布时间:2011/9/1 13:25:00
--  

Dim cmd As New SQLCommand
Dim dt As DataTable
Dim cmb As WinForm.ComboBox = e.Form.Controls("用户名")
cmd.ConnectionName = "User" ’原帮助这里指定数据源
cmd.CommandText = "SELECT DISTINCT Name From {用户}"
dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.Datarows
    cmb.Items.Add(dr("用户名"))
Next

if .Items.Count > 0 Then ‘原帮助这里多了一个判断
    cmb.SelectedIndex = 0

end if

[此贴子已经被作者于2011-9-1 13:33:35编辑过]

--  作者:yangming
--  发布时间:2011/9/1 13:26:00
--  
以下是引用程兴刚在2011-9-1 13:25:00的发言:
 cmb不等于cmd

请说的明白些?呵


--  作者:狐狸爸爸
--  发布时间:2011/9/1 13:28:00
--  
没有办法直接看出来,用这个方法检查一下:
 
http://www.foxtable.com/help/topics/1485.htm
 
我估计是dt为nothing。
--  作者:程兴刚
--  发布时间:2011/9/1 13:34:00
--  
我原来看错了再看看二楼
--  作者:yangming
--  发布时间:2011/9/1 13:52:00
--  

对不起,我查到原因了,确实后台的表是空表,原因是列名搞错了,

错误:SELECT DISTINCT Name From {用户}"

正确:SELECT DISTINCT 用户名 From {用户}"

谢谢二位老师!呵

[此贴子已经被作者于2011-9-1 13:53:40编辑过]