2017-10-18 11 views
0

J'utilise Classic ASP pour ajouter une fonction de note à la table qui affiche les lignes d'une base de données. La ligne insérée va enregistrer dans la base de données les remarques sauvegardées mais le code suivant ne fonctionne pas.Ajout d'une zone de texte dans une table et enregistrement dans la base de données 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

Est-ce classique ASP ou asp.net? Il ressemble à ASP classique – John

+0

son ASP classique –

+2

Votre HTML «

» est invalide, il ne peut pas démarrer à l'intérieur d'une cellule de tableau et se terminer à l'extérieur, déplacez le '
' dans le ''. Avez-vous exécuté le HTML via un validateur? De même, la ligne 'cast (Remarquables en int)' n'est pas une syntaxe VBScript valide et va faire une erreur, pas sûr de ce que ça veut dire. – Lankymart

Répondre

0

Vous n'exécutez jamais votre requête de mise à jour. votre instruction de mise à jour ne semble pas non plus valide car vous utilisez la colonne Notes comme stockage pour la remarque et comme identifiant de ligne. envisager d'ajouter une colonne rowid vous table et utilisez l'instruction de mise à jour suivante

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

Étant donné que votre code est vulnerabe à l'injection SQL, vous devez rechercher les requêtes paramétrées.