-- 作者:晕了快扶我
-- 发布时间:2015/4/3 17:47:00
-- 求助,遍历比较
Dim vr As DataRow = DataTables("用户表").SQLFind("用户名 =\'" & _user & "\'") Dim us As String = vr("用户名") Dim gp As String =vr("用户组") Dim zw As String = vr("职位") Dim gs As String =vr("分公司") If gp = "开发者" Return True Else Dim dt As DataTable = DataTables("授权表") Dim dr As DataRow =dt.Find("模块名称 = \'系统设置\' And 对象窗口 Is Null") If dr Is Nothing \'MessageBox.Show("很抱歉,你无此权限!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Warning) Return False ElseIf dr IsNot Nothing Then If dr.IsNull("被授权人") = False Then Dim nms() As String = dr("被授权人").Split("》") For Each nm As String In nms If nm = zw OrElse nm = us Then \'如果授权用户包括登录用户所属的分组或其用户名 Return True \'返回True Else MessageBox.Show("很抱歉,你无此权限!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Warning) Return False End If Next End If End If End If Return False
求助,这是按例子做的权限,标红的部分我用命令窗口执行后,发现如果nms有1个以上的时候,for...each执行后只能对第一个值进行对比
比如主管》经理》董事长,分割开字符后只能取到主管后就停止了,结果返回false,求大神指点
|