在表格中添加文本区域并将其保存到SQL Server数据库

问题描述:

我使用的是传统ASP向从数据库显示行的表中添加注释函数。插入的行将保存到数据库保存备注但下面的代码不起作用。在表格中添加文本区域并将其保存到SQL Server数据库

<% 
    Dim fRemark 
    fRemark = Request.Form("Remarks") 
    Dim rsIntra,MyQryItr2 
    set cnIntra = Server.CreateObject("ADODB.Connection") 
    set MyQryItra2 = server.CreateObject ("ADODB.Recordset") 
    set rsIntra = Server.CreateObject("ADODB.Recordset") 
    MyQryItra2 = "select Remarks from [PurchaseOrderTrackInfo]" 
    rsIntra.Open MyQryItra,strRMSIDMcn 
    if rsIntra.eof then 
     MyQryItr2 = "insert into [PurchaseOrderTrackInfo] Remarks values N'" & fRemark & " '; " 
     cast(Remarks as int) 
     cnIntra.Execute MyQryItr2 
    else 
     rsIntra.close 
     set rsIntra = Nothing 
     set rsIntra = server.CreateObject("ADODB.Recordset") 
     MyQryItr2 = "UPDATE [PurchaseOrderTrackInfo] SET Remarks = N'" & fRemark & " '; where Remarks = rowID;"  
    end if 
    set rsIntra=Nothing 
    strConnDB= "Driver={SQL Server};Server=GB;Database=PurchaseOrderTrackInfo;UID=madfox;PWD=;" 
%> 
    <td colspan="10" bordercolor=#3399ff bgcolor=#FFFF99 align="center"> 
     <font face="Arabic Transparent" size="1" color="#800080"></font> 
     <form action=UpdatePO1.asp method=post > 
     <textarea name="Remarks" cols="20" rows="2" ><%=fRemark%></textarea> 
     <input type="submit" class="btn1" value="save" name="finish"/> 
     <input type="hidden" name="rowID" value="ID" /> 
    </td> 
    </form> 
<% 
+0

这是传统的ASP还是asp.net?它看起来像经典ASP – John

+0

它的经典ASP –

+2

您的HTML'

'无效,它不能在表格单元格内开始并在其外部结束,请将'
'移动到''内。你通过验证器运行了HTML吗?同样,'cast(注解为int)'行不是有效的VBScript语法,并且会出错,不知道该怎么做。 – Lankymart

你永远不会执行你的更新查询。您的更新语句似乎也不是有效的,因为您正在使用列备注作为备注的存储空间和行ID。考虑加入一个rowid列给你的表,并使用下面的更新语句

MyQryItr2 = "UPDATE [PurchaseOrderTrackInfo] SET Remarks = N'" & fRemark & " ' where rowId =" & rowID 
cnIntra.Execute MyQryItr2 

因为你的代码是vulnerabe SQL注入,你应该看看了参数化查询。