Xeena
Messages postés6Date d'inscriptionjeudi 18 novembre 2010StatutMembreDernière intervention 8 février 2011
-
7 févr. 2011 à 15:18
Xeena
Messages postés6Date d'inscriptionjeudi 18 novembre 2010StatutMembreDernière intervention 8 février 2011
-
8 févr. 2011 à 15:13
Bonjour,
Voici mon problème.
J'ai une ComboBox qui affiche le nom et prénom des salariés. (Deux champs concaténés, donc.) Et je veux récupérer le numéro du salarié qu'on a sélectionné.
Donc je fais ceci :
Dim NomSalarie As String
Dim NumDuSalarie As Integer
NomSalarie = CBListeSalarie.SelectedItem
Dim strSql = "SELECT numsalarie FROM salarie WHERE (nomsalarie + ' ' + prenomsalarie)='" & NomSalarie & "';"
Dim MycommandS As MySqlCommand = Connection.CreateCommand()
MycommandS.CommandText = strSql
Dim dataReaderS As MySqlDataReader = MycommandS.ExecuteReader
Do While dataReaderS.Read
NumDuSalarie = dataReaderS.GetString(0)
Loop
dataReaderS.Close()
Mais avec ceci, quand je fais un enregistrement de commande je retrouve toujours "5" dans ma base de données mySQL (5 car c'est le dernier numéro de salarié) et si je tape en "dur" la requête dans mySQL on me retourne tous les numéros de salariés...
Si vous avez une idée je suis preneuse... Merci !
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 7 févr. 2011 à 17:40
Salut
Donc ta variable "NomSalarie" contient donc "Dupond Laurent".
L'as-tu vérifié ?
Es-tu sûre que cette chaine ne comporte pas des espaces supplémentaires ou autre tabulation ?
Pas bien compris ce qui se passe :
"je retrouve toujours "5" (...) car c'est le dernier numéro"
Je ne vois pas ce qui est logique là dedans
"si je tape en "dur" (...) on me retourne tous les numéros"
Veux-tu dire que tu reçois tous les enregistrements (sans sélection efficace) ?
Ou bien veux-tu dire que dans ce cas, cela fonctionne correctement ?
Dans ce dernier cas, il faudrait voir la syntaxe qui marche et la comparer à la syntaxe qui marche pas (vérifier le contenu de strSql lors d'une requète).
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Xeena
Messages postés6Date d'inscriptionjeudi 18 novembre 2010StatutMembreDernière intervention 8 février 2011 8 févr. 2011 à 08:35
Bonjour,
[b][i]Donc ta variable "NomSalarie" contient donc "Dupond Laurent".
L'as-tu vérifié ? /i/b
Elle se vérifie avec l'affichage dans ma ComboBox car il apparait le nom du salarié ainsi que son prénom. Comme "Dupond Laurent" oui. NomSalarie contient l'item que l'utilisateur a sélectionné dans la ComboBox.
Je viens de vérifier, au cas où, en affichant NomSalarie dans un label lorsque l'utilisateur le sélectionne et on a bien "Dupond Laurent".
Es-tu sûre que cette chaine ne comporte pas des espaces supplémentaires ou autre tabulation ?
Comment le vérifier ? Dans la base de données ? Je viens de regarder et non, normalement il n'y en a pas.
[i][b]Pas bien compris ce qui se passe :
"je retrouve toujours "5" (...) car c'est le dernier numéro"
Je ne vois pas ce qui est logique là dedans /b/i
Justement je ne comprends pas moi-même. En fait, j'ai 4 salariés avec pour chacun un numSalarie, nomSalarie, prenomSalarie. Les numSalarie vont de 2 à 5 inclus.
[b][i]"si je tape en "dur" (...) on me retourne tous les numéros"
Veux-tu dire que tu reçois tous les enregistrements (sans sélection efficace) ?
Ou bien veux-tu dire que dans ce cas, cela fonctionne correctement ? /i/b
Je veux dire que lorsque j'écris la requête en "dur" sur MySQL, on me retourne tous les enregistrements. (Mais que la colonne des numSalarie. Donc je vois : 2, 3, 4 et 5 dans une colonne.) ça ne fonctionne donc pas comme je le souhaiterai. Moi je cherche à avoir le numéro du salarie donc le nom+prénom est égal à ce que l'on a sélectionné dans la ComboBox.
Xeena
Messages postés6Date d'inscriptionjeudi 18 novembre 2010StatutMembreDernière intervention 8 février 2011 8 févr. 2011 à 15:13
Oui, j'ai vérifié car on ne sait jamais à force de voir le code on ne voit plus rien.
Il y a d'abord le nom puis le prénom, et ils ont bien un espace entre eux..