OVH Cloud OVH Cloud

Syntaxe clause WHERE

7 réponses
Avatar
Aline B.
Dans une clause WHERE (SQL), comment =E9crire cette clause=20
quand dans la variable que j'envoie, il y a un ou des=20
apostrophe.

Ex.: adaOLEDB.SelectCommand =3D New OleDbCommand("SELECT=20
DescriptionCategClient FROM CategorieClient WHERE=20
DescriptionCategClient <> '" & mCategDesc & "'", cnnOLEDB)

Cette commande fonctionne tr=E8s bien, sauf si je passe=20
comme variable (dans mCategDesc) ex.: =E2ge d'or

Il y a une apostrophe dans -- =E2ge d'or

Comment =E9crire cette commande pour que le ou les mots=20
pass=E9s dans la variable passe sans probl=E8me avec des=20
apostrophe?

Merci pour vos r=E9ponses!

7 réponses

Avatar
Bull
Fais comme suit :

adaOLEDB.SelectCommand = New OleDbCommand("SELECT
DescriptionCategClient FROM CategorieClient WHERE
DescriptionCategClient <> @Categ", cnnOLEDB)

command.Parameters.Add("@Categ", mCategDesc)

@+
Bull

"Aline B." a écrit dans le message de
news: 347601c49f4d$9d507350$
Dans une clause WHERE (SQL), comment écrire cette clause
quand dans la variable que j'envoie, il y a un ou des
apostrophe.

Ex.: adaOLEDB.SelectCommand = New OleDbCommand("SELECT
DescriptionCategClient FROM CategorieClient WHERE
DescriptionCategClient <> '" & mCategDesc & "'", cnnOLEDB)

Cette commande fonctionne très bien, sauf si je passe
comme variable (dans mCategDesc) ex.: âge d'or

Il y a une apostrophe dans -- âge d'or

Comment écrire cette commande pour que le ou les mots
passés dans la variable passe sans problème avec des
apostrophe?

Merci pour vos réponses!
Avatar
Pascal Belaud [MS]
Salut Aline,

Ecrire ce genre de code a deux inconvénients:
- te compliquer la vie dans le cas précis que tu décris :-)
- rendre ton code attaquable pour les attaques connues sous le nom "SQL
Injection" ou "Injection SQL"

Voici comment faire d'une pierre deux coups:

adaOLEDB.SelectCommand = New OleDbCommand("SELECT
DescriptionCategClient FROM CategorieClient WHERE DescriptionCategClient <>
@Description", cnnOLEDB)

Dim monParam1 As New OleDbParameter("@Description",
OleDbType.VarChar, 255)
monParam1.Value = mCategDesc
adaOLEDB.SelectCommand.Parameters.Add(monParam1)

' puis la suite de ton code

A bientôt,

--
Pascal Belaud - Microsoft France
OlyMars: SQL Server Centric .NET Code Generator

http://www.microsoft.com/france/msdn/olymars
http://www.olymars.net/latest.zip (interim build)
http://blogs.msdn.com/olymars


"Aline B." wrote in message
news:347601c49f4d$9d507350$
Dans une clause WHERE (SQL), comment écrire cette clause
quand dans la variable que j'envoie, il y a un ou des
apostrophe.

Ex.: adaOLEDB.SelectCommand = New OleDbCommand("SELECT
DescriptionCategClient FROM CategorieClient WHERE
DescriptionCategClient <> '" & mCategDesc & "'", cnnOLEDB)

Cette commande fonctionne très bien, sauf si je passe
comme variable (dans mCategDesc) ex.: âge d'or

Il y a une apostrophe dans -- âge d'or

Comment écrire cette commande pour que le ou les mots
passés dans la variable passe sans problème avec des
apostrophe?

Merci pour vos réponses!
Avatar
Aline B.
Ok! cela marche très bien pour une requête sélection
simple en lecture.
Mais si j'emploie la même requête pour par contre ajouter
des données avec CommandBuilder, cela ne fonctionne pas!
Y-aurait-il une autre méthode!
Merci!

-----Message d'origine-----
Salut Aline,

Ecrire ce genre de code a deux inconvénients:
- te compliquer la vie dans le cas précis que tu décris :-


)
- rendre ton code attaquable pour les attaques connues


sous le nom "SQL
Injection" ou "Injection SQL"

Voici comment faire d'une pierre deux coups:

adaOLEDB.SelectCommand = New OleDbCommand("SELECT
DescriptionCategClient FROM CategorieClient WHERE


DescriptionCategClient <>
@Description", cnnOLEDB)

Dim monParam1 As New OleDbParameter


("@Description",
OleDbType.VarChar, 255)
monParam1.Value = mCategDesc
adaOLEDB.SelectCommand.Parameters.Add(monParam1)

' puis la suite de ton code

A bientôt,

--
Pascal Belaud - Microsoft France
OlyMars: SQL Server Centric .NET Code Generator

http://www.microsoft.com/france/msdn/olymars
http://www.olymars.net/latest.zip (interim build)
http://blogs.msdn.com/olymars


"Aline B." wrote in


message
news:347601c49f4d$9d507350$
Dans une clause WHERE (SQL), comment écrire cette clause
quand dans la variable que j'envoie, il y a un ou des
apostrophe.

Ex.: adaOLEDB.SelectCommand = New OleDbCommand("SELECT
DescriptionCategClient FROM CategorieClient WHERE
DescriptionCategClient <> '" & mCategDesc & "'", cnnOLEDB)

Cette commande fonctionne très bien, sauf si je passe
comme variable (dans mCategDesc) ex.: âge d'or

Il y a une apostrophe dans -- âge d'or

Comment écrire cette commande pour que le ou les mots
passés dans la variable passe sans problème avec des
apostrophe?

Merci pour vos réponses!


.



Avatar
Pascal Belaud [MS]
Le principe est le même, quel que soit la commande SQL se trouvant dans ton
objet Command.

Quel est ton erreur ? Donne-nous aussi ton code.

A bientôt,

--
Pascal Belaud - Microsoft France
OlyMars: SQL Server Centric .NET Code Generator

http://www.microsoft.com/france/msdn/olymars
http://www.olymars.net/latest.zip (interim build)
http://blogs.msdn.com/olymars


"Aline B." wrote in message
news:024f01c49f51$ae512f60$
Ok! cela marche très bien pour une requête sélection
simple en lecture.
Mais si j'emploie la même requête pour par contre ajouter
des données avec CommandBuilder, cela ne fonctionne pas!
Y-aurait-il une autre méthode!
Merci!

-----Message d'origine-----
Salut Aline,

Ecrire ce genre de code a deux inconvénients:
- te compliquer la vie dans le cas précis que tu décris :-


)
- rendre ton code attaquable pour les attaques connues


sous le nom "SQL
Injection" ou "Injection SQL"

Voici comment faire d'une pierre deux coups:

adaOLEDB.SelectCommand = New OleDbCommand("SELECT
DescriptionCategClient FROM CategorieClient WHERE


DescriptionCategClient <>
@Description", cnnOLEDB)

Dim monParam1 As New OleDbParameter


("@Description",
OleDbType.VarChar, 255)
monParam1.Value = mCategDesc
adaOLEDB.SelectCommand.Parameters.Add(monParam1)

' puis la suite de ton code

A bientôt,

--
Pascal Belaud - Microsoft France
OlyMars: SQL Server Centric .NET Code Generator

http://www.microsoft.com/france/msdn/olymars
http://www.olymars.net/latest.zip (interim build)
http://blogs.msdn.com/olymars


"Aline B." wrote in


message
news:347601c49f4d$9d507350$
Dans une clause WHERE (SQL), comment écrire cette clause
quand dans la variable que j'envoie, il y a un ou des
apostrophe.

Ex.: adaOLEDB.SelectCommand = New OleDbCommand("SELECT
DescriptionCategClient FROM CategorieClient WHERE
DescriptionCategClient <> '" & mCategDesc & "'", cnnOLEDB)

Cette commande fonctionne très bien, sauf si je passe
comme variable (dans mCategDesc) ex.: âge d'or

Il y a une apostrophe dans -- âge d'or

Comment écrire cette commande pour que le ou les mots
passés dans la variable passe sans problème avec des
apostrophe?

Merci pour vos réponses!


.



Avatar
Laurent B
Salut,

Une solution simple consiste à remplacer l'apostrophe par
un autre caractére dans les champs lors de la saisie et
des recherches.

Eh oui, ils auraient pu trouver un autre caractére que
l'apostrophe pour les requettes SQL. C'est pas trés
malin ;-)

Le code Ascii de l'apostrophe est 39. Il est facile de le
remplacé par le caractére dont le code Ascii est 180 est
qui ressemble à l'apostrophe.

Dans l'événement KeyPress des TextBox:

Dim intAscii As Integer = Asc(e.KeyChar)
If (intAscii = 39) Then
e.Handled = True
SendKeys.Send(Chr(180))
End If

Je procéde toujours comme cela sur les champs où je doit
effectuer des recherches ou des tris et jusqu'a présent
je n'ai jamais eu de soucis.

Voila

A++

Laurent




========================= ========================= ====
-----Message d'origine-----
Dans une clause WHERE (SQL), comment écrire cette clause
quand dans la variable que j'envoie, il y a un ou des
apostrophe.

Ex.: adaOLEDB.SelectCommand = New OleDbCommand("SELECT
DescriptionCategClient FROM CategorieClient WHERE
DescriptionCategClient <> '" & mCategDesc & "'",


cnnOLEDB)

Cette commande fonctionne très bien, sauf si je passe
comme variable (dans mCategDesc) ex.: âge d'or

Il y a une apostrophe dans -- âge d'or

Comment écrire cette commande pour que le ou les mots
passés dans la variable passe sans problème avec des
apostrophe?

Merci pour vos réponses!
.



Avatar
Aline B.
Voici un bout de code...

adaOLEDB.SelectCommand = New OleDbCommand("SELECT * FROM
Commande WHERE CodeIDCommande = ?", cnnOLEDB)

adaOLEDB.SelectCommand.Parameters.Add("@strCodeIDDivers",
OleDbType.VarChar)

adaOLEDB.SelectCommand.Parameters
("@strCodeIDDivers").Value = strCodeIDComm

cmbOLEDB = New OleDbCommandBuilder(adaOLEDB)

dstCommande.Clear()
adaOLEDB.Fill(dstCommande)


Cette méthode est-elle correcte?
Merci!


-----Message d'origine-----
Le principe est le même, quel que soit la commande SQL se


trouvant dans ton
objet Command.

Quel est ton erreur ? Donne-nous aussi ton code.

A bientôt,

--
Pascal Belaud - Microsoft France
OlyMars: SQL Server Centric .NET Code Generator

http://www.microsoft.com/france/msdn/olymars
http://www.olymars.net/latest.zip (interim build)
http://blogs.msdn.com/olymars


"Aline B." wrote in


message
news:024f01c49f51$ae512f60$
Ok! cela marche très bien pour une requête sélection
simple en lecture.
Mais si j'emploie la même requête pour par contre ajouter
des données avec CommandBuilder, cela ne fonctionne pas!
Y-aurait-il une autre méthode!
Merci!

-----Message d'origine-----
Salut Aline,

Ecrire ce genre de code a deux inconvénients:
- te compliquer la vie dans le cas précis que tu




décris :-
)
- rendre ton code attaquable pour les attaques connues


sous le nom "SQL
Injection" ou "Injection SQL"

Voici comment faire d'une pierre deux coups:

adaOLEDB.SelectCommand = New OleDbCommand("SELECT
DescriptionCategClient FROM CategorieClient WHERE


DescriptionCategClient <>
@Description", cnnOLEDB)

Dim monParam1 As New OleDbParameter


("@Description",
OleDbType.VarChar, 255)
monParam1.Value = mCategDesc
adaOLEDB.SelectCommand.Parameters.Add(monParam1)

' puis la suite de ton code

A bientôt,

--
Pascal Belaud - Microsoft France
OlyMars: SQL Server Centric .NET Code Generator

http://www.microsoft.com/france/msdn/olymars
http://www.olymars.net/latest.zip (interim build)
http://blogs.msdn.com/olymars


"Aline B." wrote in


message
news:347601c49f4d$9d507350$
Dans une clause WHERE (SQL), comment écrire cette clause
quand dans la variable que j'envoie, il y a un ou des
apostrophe.

Ex.: adaOLEDB.SelectCommand = New OleDbCommand("SELECT
DescriptionCategClient FROM CategorieClient WHERE
DescriptionCategClient <> '" & mCategDesc & "'",




cnnOLEDB)

Cette commande fonctionne très bien, sauf si je passe
comme variable (dans mCategDesc) ex.: âge d'or

Il y a une apostrophe dans -- âge d'or

Comment écrire cette commande pour que le ou les mots
passés dans la variable passe sans problème avec des
apostrophe?

Merci pour vos réponses!


.





.



Avatar
Aline B.
Et quand est-il d'un RowFilter d'un Dataview?
Ex.:
Me.DataView.RowFilter = "CodeID = '" & gstrCodeID & "'"

Le même problème se répète ici!
Merci!

-----Message d'origine-----




-----Message d'origine-----
Le principe est le même, quel que soit la commande SQL




se
trouvant dans ton
objet Command.

Quel est ton erreur ? Donne-nous aussi ton code.

A bientôt,

--
Pascal Belaud - Microsoft France
OlyMars: SQL Server Centric .NET Code Generator

http://www.microsoft.com/france/msdn/olymars
http://www.olymars.net/latest.zip (interim build)
http://blogs.msdn.com/olymars


"Aline B." wrote




in
message
news:024f01c49f51$ae512f60$
Ok! cela marche très bien pour une requête sélection
simple en lecture.
Mais si j'emploie la même requête pour par contre ajouter
des données avec CommandBuilder, cela ne fonctionne pas!
Y-aurait-il une autre méthode!
Merci!

-----Message d'origine-----
Salut Aline,

Ecrire ce genre de code a deux inconvénients:
- te compliquer la vie dans le cas précis que tu




décris :-
)
- rendre ton code attaquable pour les attaques connues


sous le nom "SQL
Injection" ou "Injection SQL"

Voici comment faire d'une pierre deux coups:

adaOLEDB.SelectCommand = New OleDbCommand






("SELECT
DescriptionCategClient FROM CategorieClient WHERE


DescriptionCategClient <>
@Description", cnnOLEDB)

Dim monParam1 As New OleDbParameter


("@Description",
OleDbType.VarChar, 255)
monParam1.Value = mCategDesc
adaOLEDB.SelectCommand.Parameters.Add(monParam1)

' puis la suite de ton code

A bientôt,

--
Pascal Belaud - Microsoft France
OlyMars: SQL Server Centric .NET Code Generator

http://www.microsoft.com/france/msdn/olymars
http://www.olymars.net/latest.zip (interim build)
http://blogs.msdn.com/olymars


"Aline B." wrote






in
message
news:347601c49f4d$9d507350$
Dans une clause WHERE (SQL), comment écrire cette clause
quand dans la variable que j'envoie, il y a un ou des
apostrophe.

Ex.: adaOLEDB.SelectCommand = New OleDbCommand("SELECT
DescriptionCategClient FROM CategorieClient WHERE
DescriptionCategClient <> '" & mCategDesc & "'",




cnnOLEDB)

Cette commande fonctionne très bien, sauf si je passe
comme variable (dans mCategDesc) ex.: âge d'or

Il y a une apostrophe dans -- âge d'or

Comment écrire cette commande pour que le ou les mots
passés dans la variable passe sans problème avec des
apostrophe?

Merci pour vos réponses!


.





.



.