modifier un enregistrement d'une base de donnees en asp

modifier un enregistrement d'une base de donnees en asp - ASP - Programmation

Marsh Posté le 24-07-2007 à 11:10:27    

slt j travaille sur une petite application asp avec interaction avec une base de donnees.j un probleme pour modifier un enregistrement quelconque via un un lien "modifier".svp aidez moi a resoudre mon prob si c possible voici mon code:
 
<%connstring="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=c:\personne.mdb"
Set conn = Server.CreateObject("ADODB.Connection" )
conn.Open connstring%>  
 
<% cin=request.querystring("cin" )
 Set RS = Server.CreateObject("ADODB.Recordset" )
sql = "select * FROM pers WHERE CIN =" & cin & ""
RS.Open sql, Conn, 3, 3
 
RS.fields("CIN" )=request.form("cin" )
RS.fields("Nom" )=request.form("nom" )
RS.fields("Prenom" )=request.form("prenom" )
RS.fields("Adresse" )=request.form("adresse" )
RS.update
RS.Close
Conn.Close
Set Conn = Nothing%>
 
<html><head><title>modifier</title></head>
<body>
<BR><BR><BR><H1><center>Enregistrement modifié avec succès</center></H1><BR><BR><BR>
<center><a href="http://10.0.32.99/sanaa/first.asp">Retour en première page </a></center>
</body>
</html>
 
 
et voici l'erreur qu'on m'affiche:
 
 
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression 'CIN ='.
 
j'arrive a voir ou est le probleme.
 
merci d'avance de votre aide  

Reply

Marsh Posté le 24-07-2007 à 11:10:27   

Reply

Marsh Posté le 24-07-2007 à 11:12:52    

jvoulai dire j'arrive pas a voir ou est le problème.erreur de frappe

Reply

Marsh Posté le 15-08-2007 à 12:05:30    

Essaye se que je te met et dit moi si cela fonctionne...moi ça marche ( si cela ne fonctionne pas, il faut que tu fasse un REQUEST de chaque chose que tu veux Enregistrer)
 
<%connstring="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=c:\personne.mdb"
Set conn = Server.CreateObject("ADODB.Connection" )
conn.Open connstring%>  
 
<%  
sql = "SELECT * FROM pers WHERE (CIN='"&cin&"')"
Set compt = Server.CreateObject("ADODB.Recordset" )
compt.Open sql, Connec, 3, 3
compt.movefirst
compt.fields("cin" )=cin
compt.fields("Nom" )=nom
compt.fields("prenom" )=prenom
compt.fields("adresse" )=adresse
compt.close
set compt=nothing %>
 
<html><head><title>modifier</title></head>
<body>
<BR><BR><BR><H1><center>Enregistrement modifié avec succès</center></H1><BR><BR><BR>
<center><a href="http://10.0.32.99/sanaa/first.asp">Retour en première page </a></center>
</body>
</html>
 
 
et voici l'erreur qu'on m'affiche:
 
 
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression 'CIN ='.
 
j'arrive a voir ou est le probleme.
 
merci d'avance de votre aide  
[/quotemsg]

Reply

Marsh Posté le 24-08-2007 à 11:05:49    

Code :
  1. sql = "select * FROM pers WHERE CIN ='" & request.querystring("cin" ) & "'"

Reply

Marsh Posté le 24-08-2007 à 11:15:47    

:sweat:
 
1/ paramètre SQL non protégé : tu va te faire pulvériser ton site
2/ n'utilise pas les fonctions de curseur dynamique, cela n'est pas supporté sur toutes les versions d'ADO, ça peut provoquer des comportements inattendus dans le cas d'une appli multi-session (et un site c'est multi-session)
 
Donc :
1/ Utilise des requêtes paramétrée (objets ADODB.Command et ADODB.Parameter).
2/ Fait un UPDATE explicitement si tu veux mettre à jour des données.
 
http://www.devguru.com/technologies/ado/8516.asp
http://www.devguru.com/technologies/ado/8613.asp
http://www.devguru.com/technologies/ado/8528.asp

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed