OVH Cloud OVH Cloud

Apostrophe dans requete

3 réponses
Avatar
JCM
Bonjour

J'ai un beug bicause une apostrophe dans une requete, voici mon code,
pouvez-vous me dire ou est l'erreur, (Session("offre") est dans la
procédure : Peindre d'après les chiffres)

'recherche du produit dans la table concernée

DBCommand = New OleDbDataAdapter _

("Select Designation, prix, Image, descriptif from " _

& Session("TBLavoir") _

& " Where Designation='" & Session("Offre") & "'", DBConn)

Dim RecDesignation As String = """

RecDesignation = Replace(RecDesignation, "'", "''")

DBCommand.Fill(DSPageData, "OffreAvoir")

RecDesignation = DSPageData.Tables("OffreAvoir").Rows(0).Item("designation")

Voici le message d'erreur

Erreur de syntaxe (opérateur absent) dans l'expression 'Designation='Peindre
d'après les chiffres''.

Merci pour vos réponses
JCM

3 réponses

Avatar
Richard Clark
Attention au problème d'injection SQL. Le mieux est:
1/d'utiliser une procédure stockée
2/de simuler une procédure stockée

Par exemple

Dim sSQL as String = "SELECT Designation From Table1 WHERE recDesign =
@recDesign"

Puis:
Command.Parameters.Add("@recDesign").Value = research

Ou un truc comme ca

--
Richard Clark - MVP .NET
http://www.c2i.fr
http://www.project-hoshimi.com


"JCM" wrote in message
news:#:

Bonjour

J'ai un beug bicause une apostrophe dans une requete, voici mon code,
pouvez-vous me dire ou est l'erreur, (Session("offre") est dans la
procédure : Peindre d'après les chiffres)

'recherche du produit dans la table concernée

DBCommand = New OleDbDataAdapter _

("Select Designation, prix, Image, descriptif from " _

& Session("TBLavoir") _

& " Where Designation='" & Session("Offre") & "'", DBConn)

Dim RecDesignation As String = """

RecDesignation = Replace(RecDesignation, "'", "''")

DBCommand.Fill(DSPageData, "OffreAvoir")

RecDesignation = DSPageData.Tables("OffreAvoir").Rows(0).Item("designation")

Voici le message d'erreur

Erreur de syntaxe (opérateur absent) dans l'expression 'Designation='Peindre
d'après les chiffres''.

Merci pour vos réponses
JCM


Avatar
Didier Danse
Tu dois doubler l'apostrophe de Session("Offre") mais tu as un risque
avec ce type de requêtes.

Cependant regardes du côté des requêtes paramètrées ou des procédures
stockées, tu éviteras ce genre de problème.

Didier Danse
MVP ASP.NET

-----Original Message-----
From: JCM [mailto:]
Posted At: mercredi 18 octobre 2006 8:10
Posted To: microsoft.public.fr.dotnet.vb
Conversation: Apostrophe dans requete
Subject: Apostrophe dans requete

Bonjour

J'ai un beug bicause une apostrophe dans une requete, voici mon code,
pouvez-vous me dire ou est l'erreur, (Session("offre") est dans la
procédure : Peindre d'après les chiffres)

'recherche du produit dans la table concernée

DBCommand = New OleDbDataAdapter _

("Select Designation, prix, Image, descriptif from " _

& Session("TBLavoir") _

& " Where Designation='" & Session("Offre") & "'", DBConn)

Dim RecDesignation As String = """

RecDesignation = Replace(RecDesignation, "'", "''")

DBCommand.Fill(DSPageData, "OffreAvoir")

RecDesignation DSPageData.Tables("OffreAvoir").Rows(0).Item("designation")

Voici le message d'erreur

Erreur de syntaxe (opérateur absent) dans l'expression
'Designation='Peindre
d'après les chiffres''.

Merci pour vos réponses
JCM
Avatar
ANDBRETON
JCM a écrit :

Bonjour

J'ai un beug bicause une apostrophe dans une requete, voici mon code,
pouvez-vous me dire ou est l'erreur, (Session("offre") est dans la
procédure : Peindre d'après les chiffres)

'recherche du produit dans la table concernée

DBCommand = New OleDbDataAdapter _

("Select Designation, prix, Image, descriptif from " _

& Session("TBLavoir") _

& " Where Designation='" & Session("Offre") & "'", DBConn)

Dim RecDesignation As String = """

RecDesignation = Replace(RecDesignation, "'", "''")

DBCommand.Fill(DSPageData, "OffreAvoir")

RecDesignation = DSPageData.Tables("OffreAvoir").Rows(0).Item("designat ion")

Voici le message d'erreur

Erreur de syntaxe (opérateur absent) dans l'expression 'Designation=' Peindre
d'après les chiffres''.

Merci pour vos réponses
JCM





le probleme vient de l'expression 'Designation='Peindre d'après les
chiffres''.
l apostrophe de d apres

il faut ecrire une fonction qui double systematiquement les apostrophes
des parametres.

Where Designation='" & replace(Session("Offre"),"'","''") & "'",
DBConn)...