经典ASP和MS Access批量更新

时间:2013-11-01 00:10:41

标签: asp-classic vbscript ms-access-2007 batch-updates

我使用以下代码使用Classic Asp更新Access数据库:

<%@ Language=VBScript %>
<% Option Explicit %>
<%
Response.Buffer = True
'First, we need to get the total number of items that could be updated
Dim iCount
iCount = Request("Count")

'We need to obtain each cost and ID
Dim strstudent, strcourse, strgrade, strcomments

'We will also need to build a SQL statement
Dim strSQL

Dim conn


set conn=server.CreateObject("ADODB.connection")
conn.ConnectionString="provider=Microsoft.jet.OLEDB.4.0;data source=C:\db\agsystem.mdb"
conn.Open
'Now, we want to loop through each form element
Dim iLoop
For iLoop = 0 to iCount
'student data
strstudent = Request(iLoop & ".Student")
'course data
strcourse = Request(iLoop & ".course")
'grade
if isNull(Request(iLoop & ".grade")) or Request(iLoop & ".grade")="" then
strgrade="null"
else
strgrade= Request(iLoop & ".grade")
end if
if isNull(Request(iLoop & ".comments"))  or Request(iLoop & ".comments")="" then
strcomments=null
else
strcomments=Request(iLoop & ".comments")
end if
strSQL = "UPDATE testing SET semester2 = " & strgrade & ", commentss=" & "'" & strcomments & "'" & "  WHERE newstudentid = " &"'"& strstudent&"'" & " and Courseid = " & "'"& strcourse & "'"
conn.Execute strSQL
Next

conn.Close
Set conn = Nothing

Response.Redirect "protected.asp"
%>

问题是,在服务器中测试时,它会更新而不会出现任何问题。但是当从无线网络访问时它不会更新。

要更新的目标表有大约27,000条记录 我需要知道我做错了什么或者是否有其他方法。

1 个答案:

答案 0 :(得分:0)

在仔细分析情况后,我发现了错误。

主键中包含空格的记录(例如“2 OR 13”)将不会更新。但是像'2CEN13'这样的主键中没有空格的记录可以完美地更新。我没有时间在我的asp代码中解决它,所以我用空格编辑所有记录并解决问题。