经典的asp编辑和保存记录?

时间:2017-05-09 10:32:13

标签: vbscript asp-classic adodb

我正在开发一个名为iSAMS的学校前端系统,它使用经典的asp,使用SQL Server 2008 R2。

用最简单的术语来说,我的主要asp页面(viewstudent-edit-test.asp)返回并显示数据库表中的两个字段: txtCommentID (报告ID)和 txtComment < / strong>(实际报告)。它看起来像这样:

ReportID    Report
--------    ------
32          Good progress, now please edit me ...

我(或用户)需要能够编辑报告列中的数据,此时,当点击报告字段时,文字变得可编辑。

点击“提交”按钮后,会触发另一个名为 updateform.asp 的网页,这就是问题所在。

它会在 updateform.asp 上返回错误:

Error page: /legacy/custommodules/ucasreports/updateform.asp
Error category: adodb.command
Error type: arguments are of the wrong type, are out of acceptable range,
or are in conflict with one another.
Error source: 
Error line: 9

...第9行在updateform.asp(第1个 sqlProp.Parameters 行)中:

<!--#INCLUDE FILE="ACN.asp"-->
<%
getConID = request.form("ID")
getCom = request.form("Comment")

Set sqlProp=Server.CreateObject("ADODB.Command")
 sqlProp.ActiveConnection=Conn
  sqlProp.commandtext="update CAN_Tbl_UCAS_Reports set txtComment=? where
     txtCommentID=?"
'--------------
  sqlProp.Parameters.Append sqlProp.CreateParameter("@txtComment", adVarChar,
   adParamInput, 3500, getCom)
'--------------       
  sqlProp.Parameters.Append sqlProp.CreateParameter("@txtCommentID",
   adInteger, adParamInput, , getConID)
   sqlProp.Execute
%>

显示数据的原始页面代码:(viewstudent-edit-test.asp):

sql = "SELECT DISTINCT txtSchoolID, txtID, SubjectTeacher, txtCommentID,
 txtComment FROM CAN_Tbl_UCAS_Reports WHERE intReportType = 1 AND 
  txtSchoolID = " & paramBuilder.NextParameter(intID) & " ORDER BY txtID"

Set rsRecord = Database.GetRs(sql, conn, paramBuilder.Parameters)

if not rsRecord.EOF then
  do until rsRecord.EOF

'First we need to create our Variables
  ConID = rsRecord("txtCommentID")
  Com = rsRecord("txtComment")
%>
<tr>
 <td style="text-align:center"><%Response.Write(rsRecord.Fields
  ("txtCommentID").value)%></td>

 <td><%Response.Write(rsRecord.Fields("txtComment").value)%></td>
  <td style="text-align:center">
   <form action="updateform.asp" method="post">
    <input type="text" name="ID" value="<%=ConID%>" />
     <textarea rows="10" cols="50" name="Comment"><%=Com%></textarea>
      <input type="submit" name="Submit" value="Subsdfmit" />
       </form>
  </td>
</tr>
<%
rsRecord.Movenext 
 loop
  end if

  rsRecord.close
  set rsRecord = nothing 
%>

最后,我的连接字符串文件,ACN.asp:

<%
Dim Conn
Set Conn = CreateObject("ADODB.Connection")
Conn.ConnectionString = "Provider=SQLOLEDB;Data
 Source=sourcebob;UID=userbob;PWD=passwordbob;DATABASE=iBOB;"
Conn.Open
%>

我已经检查了参数的类型和顺序,它们似乎没问题。谷歌搜索错误消息指向缺少连接字符串,但这不是问题。似乎有许多表单接受用户输入,但不是如何成功编辑预先存在的数据。

为这么多代码道歉,但我认为有必要分析这个问题。任何想法都非常感谢!感谢。

0 个答案:

没有答案