以文本方式查看主题

-  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=13950)

--  作者:gaoyong30000
--  发布时间:2011/11/2 22:29:00
--  [求助]自定义登录窗口 更改用户 窗口出错!

Afterload 代码如下:

 

Dim UserName As String
Dim UserGroup As String
Dim PassWord As String
Dim cmd As New SQLCommand
Dim dt As DataTable
If Forms("用户管理").Opened Then \'正常打开
    UserName = Forms("用户管理").Controls("ListBox1").SelectedItem
Else
    UserName = _UserName \'_UserName为全局变量,用于保存当前用户名
    e.Form.Controls("UserName").Enabled = False
    e.Form.Controls("UserGroup").Enabled = False
End If
e.Form.Text = e.Form.Text & "-" & UserName


cmd.C

 

cmd.CommandText = "Select * From {Users} Where [Name] = \'" & UserName & "\'"
dt = cmd.ExecuteReader
If dt.DataRows.Count = 1 Then
    e.Form.Controls("UserName").Value = UserName
    e.Form.Controls("UserGroup").Value = dt.DataRows(0)("Group")
    e.Form.Controls("PassWord").Value = dt.DataRows(0)("PassWord")
Else
    MessageBox.Show("用户不存在或者已经被删除!","提示",MessageBoxButtons.OK)
    e.Form.Close()
End If

Dim cmx As New SQLCommand
Dim dx As DataTable


cmd.C

 

cmx.CommandText = "SELECT DISTINCT Group From {users}"
dx = cmx.ExecuteReader
e.Form.controls("usergroup").Combolist = dx.GetComboListString("Group")

 

出错窗口如下:


此主题相关图片如下:1.jpg
按此在新窗口浏览图片

 



此主题相关图片如下:2.jpg
按此在新窗口浏览图片

 

查了半天没查出毛病 在哪里 !

[此贴子已经被作者于2011-11-2 22:37:03编辑过]

--  作者:gaoyong30000
--  发布时间:2011/11/2 22:39:00
--  

帖子不知道 怎么回事  有些代码显示不出来

 

上面代码中的cmd.C应该为

 

cmd.链接数据源名称= "扬州华泰内控系统数据源1"

[此贴子已经被作者于2011-11-2 22:41:21编辑过]

--  作者:czy
--  发布时间:2011/11/2 22:43:00
--  
可能是Group关键字做列名称不行吧。
--  作者:mr725
--  发布时间:2011/11/2 22:50:00
--  
加上方括号试试:cmx.CommandText = "SELECT DISTINCT [Group] From {users}"

--  作者:gaoyong30000
--  发布时间:2011/11/2 23:00:00
--  

擦   果然!

 

是SQL做为数据源的原因吧


--  作者:gaoyong30000
--  发布时间:2011/11/2 23:02:00
--  

但是 我用户登录窗口 没有 [] 号 没这个问题啊

 

 

Dim cmd As New SQLCommand

Dim dt As DataTable

Dim cmb As WinForm.ComboBox = e.Form.Controls("UserName")

cmd.C

cmd.CommandText = "SELECT DISTINCT Name From {Users}"

dt = cmd.ExecuteReader()

For Each dr As DataRow In dt.Datarows

   cmb.Items.Add(dr("Name"))

Next

cmb.SelectedIndex = 0

[此贴子已经被作者于2011-11-2 23:02:21编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/11/2 23:05:00
--  
group是关键词
--  作者:gaoyong30000
--  发布时间:2011/11/2 23:07:00
--  

我记起来了   由于 我在狐表里直接创建  Users 数据源(外部sql数据源)时出错   只建了一个name列 但是 Group  和 PassWord  没 建起来

 

没办法 我只好在 服务器上得sqlserver上 添加了这2列 但不知为什么 其中的Group  默认是[Group]    是什么情况?

 

 

另外我总觉得 新版的 直接在狐表内部 创建外部数据源这功能  有问题  我建过2个表 都出错  最后都得在sql server服务器上修改的表


--  作者:gaoyong30000
--  发布时间:2011/11/2 23:15:00
--  

额  是关键词啊!

 

那我刚才提得那个是什么原因?   狐表里直接创建sql外部数据表 老出错