以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]自定义窗口问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=22435) |
-- 作者:kunge -- 发布时间:2012/8/13 0:25:00 -- [求助]自定义窗口问题 我想要的效果是这样的,我做的系统的像网站一样,用户名是有管理员管理的,每个用户名绑定一台电脑,我在users表中加了一列”MAC“用于保存主板信息,有系统自带的变量ComputerId,获取, 甚至不需要“用户管理窗口“,直接在Users表中,添加,清除密码,清除绑定的主板信息,用户名是管理员人工派发的,只要一个登陆窗口就行了。 设计思路,登录窗口还是帮助里的不变,确定代码如下: 1,用户名是否为空, 不为空,查找到到一行, 2,判断MAC是否为空,如果为空,获取的ComputerId值,保存在MAC中, 如果MAC不为空,判断密码是否为空, 如果为空,把为本框的密码保存在password中, 密码不为空时,判断密码是否正确。。。和帮助一样了 不知道ComputerId可以直接用吗?在保存数据的代码,提示代码出错,原代码是3列数据,我设计的每次保存一列,把其他列剪掉后,不知道怎么改? 另外其他的还有错吗? 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) Dim nm As String = ComputerId If dr("MAC")= "" Then 判断主板信息是否存在 cmd.CommandText = "Insert Into {Users} ([MAC]) Values (\'" cmd.CommandText = cmd.CommandText & nm & "\')" Else If nm = dr("MAC") Then 对主板信息判断 If dr("Password")= "" Then cmd.CommandText = "Insert Into {Users} ([Password]) Values (\'" cmd.CommandText = cmd.CommandText & Passwod & "\')" Else
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 End if Else Messagebox.show("请珍惜你的账号,不要借给他人使用","提 示",MessageBoxButtons.OK,MessageBoxIcon.Informat End if End if
|
-- 作者:blackzhu -- 发布时间:2012/8/13 7:31:00 -- 你这个不行 添加主板信息 不判断用户名当前用户 直接写入有啥用? |
-- 作者:狐狸爸爸 -- 发布时间:2012/8/13 8:04:00 -- ComputerId不安全的,我曾经见过一家企业,10台电脑的ComputerID一模一样。 |
-- 作者:kunge -- 发布时间:2012/8/13 10:33:00 -- 先判断的用户是否存在,不存在,返回,下面肯定存在了,然后查找到那一行,已经查找出来了, |
-- 作者:kunge -- 发布时间:2012/8/13 18:51:00 -- 我明白为什么上面的思路不正确了,因为查找出来的行,关闭窗口后,销毁了,写入的数据也消失了 正确的解决办法,如下,给客户一个修改密码的窗口,在修改的过程中,保存客户的主板信息, 这里有个小疏忽,就是如果客户不改密码就无法保存主板信息
|