以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 关于登录界面设计的问题 (http://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 其他功能都正常 就是在登录验证的时候老是提示密码不正确 一直没找到原因
|