问题描述
好的,我对此深陷困境,我不知道从哪里开始..在 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 (将#修改为@)