Dreamweaver ASP 更新记录未传递查询字符串

Dreamweaver ASP update record not passing query string

我正在尝试使用 Dreamweaver 更新 SQL 数据库中的记录,它本身运行良好,但我希望转到 url 以显示更新后的产品记录。

我尝试使用一些在线教程来解决这个问题,但不断出现此错误

Microsoft VBScript 运行时错误“800a01a8”

所需对象: ''

/coding_requests/dashboard.asp,第 33 行

这是我的代码;

<%
If (CStr(Request("MM_update")) = "coding_technical_code") Then
  If (Not MM_abortEdit) Then
    ' execute the update
    Dim MM_editCmd

    Set MM_editCmd = Server.CreateObject ("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_conn_PSCRM_Demo_STRING
    MM_editCmd.CommandText = "UPDATE DBA.coding_requests SET prodref = ?, lastupdatedby = ?, coding_status = ? WHERE prodref = ?" 
    MM_editCmd.Prepared = true
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 201, 1, 25, Request.Form("prodref")) ' adLongVarChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param2", 201, 1, 3, Request.Form("lastupdatedby")) ' adLongVarChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param3", 201, 1, 6, Request.Form("coding_status")) ' adLongVarChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param4", 200, 1, 25, Request.Form("MM_recordId")) ' adVarChar
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    ' append the query string to the redirect URL
    Dim MM_editRedirectUrl
    MM_editRedirectUrl = "coding.asp?prodref=" & (RS_Dashboard_Coding_TechnicalView.Fields.Item("prodref").Value)
    If (Request.QueryString <> "") Then
      If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0) Then
        MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
      Else
        MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
      End If
    End If
    Response.Redirect(MM_editRedirectUrl)
  End If
End If
%>

有什么建议吗?

这个错误的原因很简单,第33行包含一个对象引用(这是一个用Set variablename =创建的变量)但是运行时无法识别它作为已创建(实例化)的对象引用。

评论中解释的第33行指向

MM_editRedirectUrl = "coding.asp?prodref=" & (RS_Dashboard_Coding_TechnicalView.Fields.Item("prodref").Value)

这一行的对象引用是 RS_Dashboard_Coding_TechnicalView 但在提供的代码中没有任何地方是使用

实例化的对象引用 RS_Dashboard_Coding_TechnicalView
Set RS_Dashboard_Coding_TechnicalView = Server.CreateObject("ADODB.Recordset")

以上行是根据对象引用的名称和您尝试使用的方法进行的有根据的猜测 (.Fields.Item())。


如果您只是想将 prodref 的值从您的表单 POST 传递给 MM_editRedirectUrl 变量作为 @SearchAndResQ suggests ,只需传递 [=19] 的值=] 您已经必须提交,所以该行将是;

MM_editRedirectUrl = "coding.asp?prodref=" & Request.Form("profref")