以文本方式查看主题

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

--  作者:rjh4078
--  发布时间:2012/3/31 21:35:00
--  关于登录界面设计的问题

昨天学习了下自定义用户管理与权限 有个问题想请教下各位  我只想自定义一个登录和载入界面 用户和权限管理用系统自带的请问要如何设计?

  还有个问题 我按照帮助设计了登录界面 除了数据源直接用的是SQL数据表意外 其他都是按照帮助操作的 其他功能都正常 就是登录的时候 总是提示密码错误  我检查了下代码和数据库实在发现不了问题 请教各位

 

Dim UserName As String = e.Form.Controls("UserName").Value
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim dr As DataRow
cmd.C
If UserName = ""  Then
    Messagebox.show("请选择用户!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If
cmd.CommandText = "Select * From {Users} Where [Name] = \'" & UserName & "\'"
dt = cmd.ExecuteReader
dr = dt.DataRows(0)
If e.Form.Controls("PassWord").Value = dr("Password") Then
    _UserName = UserName
    _UserGroup = dr("Group")
    e.Form.Close
Else
    Messagebox.show("密码错误!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If

 


--  作者:czy
--  发布时间:2012/3/31 21:47:00
--  
代码看不出有问题。
--  作者:czy
--  发布时间:2012/3/31 21:50:00
--  

检查一下数据源中表列名称的大小写是否和代码中的一致。


--  作者:rjh4078
--  发布时间:2012/3/31 22:05:00
--  

代码大小写应该没问题 因为可以把用户添加到数据表中 读取也是正常 就是验证这里出问题了 不知道是因为什么设置不对


--  作者:程兴刚
--  发布时间:2012/3/31 23:27:00
--  
把您自己定义的变量  UserName改一下,和 系统变量同名了,是不是第一个  UserName前面应该带下划线?您和帮助文件对比一下!
[此贴子已经被作者于2012-3-31 23:28:34编辑过]

--  作者:rjh4078
--  发布时间:2012/4/1 7:28:00
--  

代码是直接复制帮助文件的 其他控件的属性也和foxtable的演示文件作了对比 没有发现问题 非常不解啊只是在 登录窗口的afterload事件里 发现一个问题 如果数据库内容为空就会出现报错 是不是和这个有关?

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

 如下提示


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

--  作者:程兴刚
--  发布时间:2012/4/1 7:51:00
--  

if  dt.datarows.Count > -1

     cmb.SelectedIndex

end if


--  作者:rjh4078
--  发布时间:2012/4/1 8:16:00
--  

找到原因了 在项目属性

BeforeConnectOuterDataSource

里面要添加代码 If e.name = "User" Then
    e.C & e.ProjectPath & "用户.mdb;Persist Security Info=False"
End If

 

但我用的是SQL的数据表 要怎么设置

 

 

我将代码改成

 

If e.name = "User" Then e.ConnectionString = "Provider=SQLOLEDB.1;Password=1234;Persist Security Info=True;User ID=sa;Initial Catalog=htsywlgl;Data Source=192.168.1.160,900“

endif

然后数据源设成SQL User 但是登录的时候可以取到用户名 验证密码的时候就会提示密码不正确 如果按照foxtable的案例设成access的数据源就不会出错 非常不解 难道

BeforeConnectOuterDataSource

这里的代码要制定数据表吗?那要怎么设置?请教各位
[此贴子已经被作者于2012-4-1 8:54:21编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/4/1 9:17:00
--  

没有明白你的问题,这是针对数据源的,不需要指定表,最多是根据数据源的名称来设置不同的连接字符串。

 


--  作者:rjh4078
--  发布时间:2012/4/1 10:12:00
--  

我的问题大概是这样的  我参照帮助里的自定义用户权限 操作了一遍一切OK  现在我将帮助里用的access 用户.mdb 想换成SQL里的user.dbo 其他功能都正常 就是在登录验证的时候老是提示密码不正确 一直没找到原因