Requete de Recherche HS ? [Résolu]

Signaler
Messages postés
16
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
29 mars 2007
-
Messages postés
174
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
15 février 2007
-
Bonjour,

Je souhaite faire une recherche sur une base access pour savoir si un utilisateur si trouve.
Je me retrouve donc avec un FORM qui demande le Nom + Prenom
voici mon code

nom = TB1.Text

prenom = TB2.Text
Vsql " Select count(*) from tblClients where Prenom [prenom] and NomClient = [nom]"ouvrircnx()

Dim cmd
As
New OleDbCommand
cmd.Connection = _mconnexion
cmd.CommandText = Vsql
cmd.CommandType = CommandType.Text

cmd.Parameters.Add(
"prenom", OleDbType.Char)
cmd.Parameters(
"prenom").Value = prenom

cmd.Parameters.Add(
"nom", OleDbType.Char)
cmd.Parameters(
"nom").Value = nom

If cmd.ExecuteScalar = 1
ThenMessageBox.Show(

"Utilisateur identifié")

ElseMessageBox.Show(

"Utilisateur non reconnu")

Quoi que je rentre en nom et prenom il ne trouve rien.
Ma requete est mauvaise ?

Par ava,ce merci
Laurent

10 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
essaye avec ça : Vsql = "Select count(*) from tblClients where Prenom = ' " & prenom & "'and NomClient = '" & nom & "'"

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
174
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
15 février 2007
2
Bonjour,

je connais pas trop VB NET mais dans une requete SQL "normale" , il y a besoin de simple cote dans votre requete SQL

genre : SELECT [...] Where prenom = 'toto' AND nom = 'Blop'

Il ne s'agit donc que d un avis purement SQLien :)
Messages postés
16
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
29 mars 2007

Re,

J'ai donc modifier ma requete par
Vsql " Select count(*) from tblClients where Prenom 'prenom' and NomClient = 'nom'"

Mais toujours le meme probléme
ATTENTION Prenom et Nom sont des variables dans ma chaine SQL
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
éviter les concaténations, lilo44....
Pitoux78 fais une requête parametrée, ce qui est bien plus sécurisé (face nottament a l'injection SQL)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
16
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
29 mars 2007

Super ! Bravo ! Perfet .
HUm je m'arrete la :p

La requete fonctionneVsql " Select count(*) from tblClients where Prenom '" & prenom &
"' and NomClient = '" & nom &
"'"

Merfi
Messages postés
174
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
15 février 2007
2
c'est ce que je disais ....

Je n'ai pas été assez précis :-) désolé
Messages postés
16
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
29 mars 2007

Une requéte parametre ?
C'est a dire ? 
Désolé je débute
Messages postés
174
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
15 février 2007
2
Elle semble très bien la requete comme ca hum ..

Comme ce sont 2 variables, je ne vois pas bien le rapport avec l'utilisation de parametres ^^ :)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
bien que cette requete fonctionne, elle n'est pas top coté sécurité...

imagine une requete batit pareil, pour une suppression :

"DELETE FROM [Clients] WHERE [Nom] = '" & Nom & "' "

si ton utilisateur injecte du SQL comme suit :

en s'arrangeant pour que Nom soit égal par exemple à :

' OR ''='

et tous tes enregistrements disparaissent

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
174
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
15 février 2007
2
mouai .. je vois ce que tu veux dire.

Pas convaincu mais c'est pas faux. Je suis dans une logique qui consiste a se dire que des boulettes yen a forcément. C'est comme ca qu on apprend :D ^^