以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自定义用户管理例子中的这个情况怎么解决?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=7286)

--  作者:shixia
--  发布时间:2010/6/3 20:49:00
--  自定义用户管理例子中的这个情况怎么解决?
例子中事先都有用户,所以打开项目时没有任何问题,但是如果事先到Access数据源中把所有用户名都删除掉,再打开项目就会出现问题。原因是项目代码中没有考虑到没有用户的情况。在实际发布项目时,开发者不会给用户定义几个用户不用的名称的。另外,在项目打开出现“登录窗口”后,如果点击取消则回避了登录窗口直接进入窗口,因此此时点击“取消”按钮时应该退出项目。请高手们修改
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:自定义用户登录.rar

[此贴子已经被作者于2010-6-3 21:21:18编辑过]

--  作者:czy
--  发布时间:2010/6/3 21:13:00
--  
是哪个文件呀?
--  作者:shixia
--  发布时间:2010/6/3 21:27:00
--  
不好意思,已上传成功。另,当用户登录时,如果自己输入的用户名不在后台数据源中时,也会出错。摆弄半天,还是没有好办法,请指教。
--  作者:czy
--  发布时间:2010/6/3 21:34:00
--  
\'项目AfterOpenProject事件代码
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT DISTINCT Name From {Users}"
dt = cmd.ExecuteReader()
if dt.Datarows.Count = 0 Then
    Forms("增加用户").Open()
Else
    Forms("用户登录").Open()
End If

--  作者:czy
--  发布时间:2010/6/3 21:36:00
--  

取消按钮代码改成:

 

Syscmd.Project.Exit(False)


--  作者:shixia
--  发布时间:2010/6/3 21:45:00
--  

“登录窗口”的“确定”按钮里如何写代码,达到:当在用户名中输入的用户名在后台数据源中找不到的情况下,如何处理?是退出还是转入“增加用户”窗口,代码怎么写


--  作者:czy
--  发布时间:2010/6/3 21:52:00
--  

你现在用户名输入框是不允许输入的,所以你说的问题不会出现。

 

 


--  作者:shixia
--  发布时间:2010/6/3 22:01:00
--  

如果允许输入呢

 


--  作者:狐狸爸爸
--  发布时间:2010/6/3 22:11:00
--  

1、没必要允许直接输入

2、如果你一定要允许直接输入,可以在确定按钮,判断输入的用户是否存在:

 

Dim UserName As String = e.Form.Controls("UserName").Value
Dim
cmd As New SQLCommand
Dim
dt As DataTable
Dim
dr As DataRow
cmd.ConnectionName =
"User"
If
UserName = "" Then
    Messagebox.show(
"请选择用户!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End
If
cmd.CommandText =
"Select * From {Users} Where [Name] = \'" & UserName & "\'"
dt = cmd.ExecuteReader

If dt.Datarows.Count = 0 Then

      Messagebox.show("用户不存在!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)

      Return
End If
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