Asp.net ASP和VBScript-将记录添加到数据库
好的,我尝试向现有的ASP网页添加一些代码,该网页连接到access数据库进行数据收集。代码应检查“车队”表中不同的“modecode”变量是否与“设备”表匹配。如果缺少“设备”模式,则添加缺少的模式。我遇到的问题是,在第一次加载页面时,它抛出了一个错误,但添加了正确的记录。然后,如果重新加载页面,它将正常显示。代码如下 编辑:当我添加新记录时,错误是否可能是因为没有定义“Equiment”中的每个变量 编辑:我得到的错误只是一个“500-内部服务器错误”,我不知道如何诊断Asp.net ASP和VBScript-将记录添加到数据库,asp.net,vbscript,Asp.net,Vbscript,好的,我尝试向现有的ASP网页添加一些代码,该网页连接到access数据库进行数据收集。代码应检查“车队”表中不同的“modecode”变量是否与“设备”表匹配。如果缺少“设备”模式,则添加缺少的模式。我遇到的问题是,在第一次加载页面时,它抛出了一个错误,但添加了正确的记录。然后,如果重新加载页面,它将正常显示。代码如下 编辑:当我添加新记录时,错误是否可能是因为没有定义“Equiment”中的每个变量 编辑:我得到的错误只是一个“500-内部服务器错误”,我不知道如何诊断 Set conn =
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "vehicles","",""
Dim modeArr() 'array to hold modecodes
Dim i 'array index
Dim needToClickUpdate 'If an Equipment # > than a Fleet #,
Dim k 'for loop index
needToClickUpdate = ""
'Get the total # of active vehicles by mode from the fleet table.
strFleet = "SELECT Sum(Number) As NumVehPerMode, modecode FROM fleet WHERE MemID=" & Request("MemID") & " And status='A' GROUP BY modecode ORDER BY modecode"
Set rstFleet = Server.CreateObject("ADODB.Recordset")
rstFleet.Open strFleet, conn, 3, 3
If rstFleet.RecordCount > 0 Then
rstFleet.MoveFirst
Dim TotNumVeh() 'array to hold # vehicles per mode
Dim TotModLis() 'array with list of modes
Dim TotModLis2()
i = 0
while Not rstFleet.EOF
Redim Preserve TotNumVeh(i+1)
TotNumVeh(i) = rstFleet("NumVehPerMode")
Redim Preserve TotModLis(i+1)
TotModLis(i) = rstFleet("modecode")
Redim Preserve TotModLis2(i+1)
TotModLis2(i) = rstFleet("modecode")
i = i + 1
rstFleet.MoveNext
wend
End If
rstFleet.Close
'This section grabs which modes have equipment records
strEquipmodecheck = "SELECT modecode FROM Equipment WHERE MemID=" & Request("MemID") & " AND modecode IN ('" & Join(TotModLis, "','") & "') ORDER BY modecode"
rstFleet.Open strEquipmodecheck, conn, 3, 3
If rstFleet.RecordCount > 0 Then
rstFleet.MoveFirst
Dim n
Dim m
Dim Equipmodes()
Dim MissingModes : Missingmodes = Array()
Dim isFound
m = 0
n = 0
p = 0
while Not rstFleet.EOF
Redim Preserve Equipmodes(m+1)
Equipmodes(m) = rstFleet("modecode")
m = m + 1
rstFleet.MoveNext
wend
End If
rstFleet.Close
'This section compares the mode lists from Fleet and Equipment and writes a list of Missing Modes
For m = 0 To UBound(TotModLis2) - 1
isFound = False
For n = 0 To UBound(Equipmodes) - 1
If TotModLis2(m) = Equipmodes(n) Then
isFound = True
End If
Next 'j
If Not isFound Then
Redim Preserve MissingModes(p+1)
MissingModes(p) = TotModLis2(m)
p = p + 1
End If
Next 'i
'This section adds equipment records based on the list of missing modes
newequips = "SELECT * FROM Equipment"
rstFleet.Open newequips, conn, 3, 3
For Each x in MissingModes
rstFleet.Addnew
rstFleet("MemID") = Request("MemID")
rstFleet("modecode") = x
rstFleet.Update
Next
rstFleet.Close
您到底遇到了什么错误?您使用的是Internet Explorer吗?如果是这样,禁用友好的错误消息,您将得到完整的错误-不工作-我想我们的服务器设置为显示它?可能是。尝试从web服务器(通过远程桌面)本地浏览页面,我很确定stacktrace会出现完全错误。好的,我想我必须弄清楚如何获得访问权限才能做到这一点。我对这方面很在行,并不是我们服务器的经理或其他什么。