如何解决比较 ASP Classic 中的 2 个字符串以查找新元素和已删除元素
好的,我对此深陷困境,我不知道从哪里开始..在 ASP Classic 中,我有一个来自表单的字符串,我需要将它与来自 DB 的字符串进行比较 .. 来自表单的字符串是应该加载到数据库中的新值,但在此之前我需要知道哪些元素已经在数据库中,哪些是新的,哪些将被删除..让我解释一下“概念”:
我有这两个字符串值:
- 来自表单(新值): APR、BJE、BNI、KLR、LMO03、LMO05
- 来自数据库(现有): APR、BJE、BNI、BIA、BOK、CHO
因此在上述情况下,我需要 2 个新变量
变量#1: 这应该包含来自尚未在 DB 中的表单的新条目,在上述情况下,这将包含以下内容。
- KLR、LMO03、LMO05
变量#2: 这应该包含来自 DB 中不在表单中的条目,并且将被删除,在上述情况下,这将包含以下内容。
- BIA、BOK、CHO
我拥有的是:
上面解释的 Requst.Form 和以下选择:
DIM SelectExistingPrivilegeMembersConn,SelectExistingPrivilegeMembersSQL,objSelectExistingPrivilegeMembers,PriviouslyGroupMembers
PriviouslyGroupMembers = ""
Set SelectExistingPrivilegeMembersConn = Server.CreateObject("ADODB.Connection")
SelectExistingPrivilegeMembersConn.ConnectionString="Provider=SQLOLEDB; DATA SOURCE=<SERVER>;UID=<USERNAME>;PWD=<PASSWORD>;DATABASE=<DATABASE>"
SelectExistingPrivilegeMembersConn.Open
SelectExistingPrivilegeMembersSQL = "SELECT * FROM EFP_SITE_PRIVILEGE_MEMBERS WHERE PrivilegeLevelID = " & trim(Request.Form("PrivilegeLevel")) & ";"
Set objSelectExistingPrivilegeMembers = SelectExistingPrivilegeMembersConn.Execute(SelectExistingPrivilegeMembersSQL)
While Not objSelectExistingPrivilegeMembers.EOF
PriviouslyGroupMembers = PriviouslyGroupMembers + objSelectExistingPrivilegeMembers("PrivilegeUserID") + ","
objSelectExistingPrivilegeMembers.MoveNext
Wend
objSelectExistingPrivilegeMembers.Close
Set objSelectExistingPrivilegeMembers = Nothing
PriviouslyGroupMembers = left(PriviouslyGroupMembers,len(PriviouslyGroupMembers)-1)
我该如何破解?
到目前为止我所拥有的:
我现在已经设法获得第一个变量 NewGroupMembers,但我努力获得变量 GroupMembersRemoved 我很难看到我该怎么做,需要一些帮助。
DIM SelectExistingPrivilegeMembersConn,NewGroupMembers,GroupMembersRemoved
NewGroupMembers = ""
GroupMembersRemoved = ""
Set SelectExistingPrivilegeMembersConn = Server.CreateObject("ADODB.Connection")
SelectExistingPrivilegeMembersConn.ConnectionString="Provider=SQLOLEDB; DATA SOURCE=<SERVER>;UID=<USERNAME>;PWD=<PASSWORD>;DATABASE=<DATABASE>"
SelectExistingPrivilegeMembersConn.Open
' Getting NewGroupMembers
Dim values,i
values = Split(Request.Form("EFPAdminUsers"),",")
For i = 0 To UBound(values)
SelectExistingPrivilegeMembersSQL = "SELECT COUNT(*) as isUserIn FROM EFP_SITE_PRIVILEGE_MEMBERS WHERE PrivilegeLevelID = " & trim(Request.Form("PrivilegeLevel")) & " AND PrivilegeUserID = '" & trim(values(i)) & "';"
Set objSelectExistingPrivilegeMembers = SelectExistingPrivilegeMembersConn.Execute(SelectExistingPrivilegeMembersSQL)
While Not objSelectExistingPrivilegeMembers.EOF
IF objSelectExistingPrivilegeMembers("isUserIn") <= "0" THEN
NewGroupMembers = NewGroupMembers + trim(values(i)) + ","
END IF
objSelectExistingPrivilegeMembers.MoveNext
Wend
Next
' Getting GroupMembersRemoved
SelectExistingPrivilegeMembersSQL = "SELECT PrivilegeUserID as isUserIn FROM EFP_SITE_PRIVILEGE_MEMBERS WHERE PrivilegeLevelID = " & trim(Request.Form("PrivilegeLevel")) & ";"
Set objSelectExistingPrivilegeMembers = SelectExistingPrivilegeMembersConn.Execute(SelectExistingPrivilegeMembersSQL)
While Not objSelectExistingPrivilegeMembers.EOF
values = Split(Request.Form("EFPAdminUsers"),")
For i = 0 To UBound(values)
IF objSelectExistingPrivilegeMembers("PrivilegeUserID") <> trim(values(i)) THEN
GroupMembersRemoved = GroupMembersRemoved + objSelectExistingPrivilegeMembers("PrivilegeUserID") + ","
END IF
Next
objSelectExistingPrivilegeMembers.MoveNext
Wend
objSelectExistingPrivilegeMembers.Close
Set objSelectExistingPrivilegeMembers = Nothing
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。