Comparer un String à une ListBox
Résolu
Omikami
Messages postés
177
Date d'inscription
Statut
Membre
Dernière intervention
-
Omikami Messages postés 177 Date d'inscription Statut Membre Dernière intervention -
Omikami Messages postés 177 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite comparer une chaîne de caractère saisie par un utilisateur à une ListBox qui contient des chaines de caractères elle même récupérer d'une BDD Acces.
Voici l'erreur récurrente que j'ai :
"Impossible d'effectuer un cast d'un objet de type 'System.Data.DataRowView' en type 'System.String'."
Sur cette partie de code, l'erreur vient lors du débogage sur la ligne :
https://image.noelshack.com/fichiers/2017/19/1494495020-erreur.png
Exactement sur cette ligne :
"if (TBStyle.Text == (string) LSTStyles.Items[i])"
Le problème c'est que si je ne Cast pas il me demande alors de faire un Cast de la partie de droite en string ...
https://image.noelshack.com/fichiers/2017/19/1494495302-erreur-2.png
Je tourne en rond, si vous avais une solution à me proposer j'en serais bien content !
Merci à vous,
Anthony.
Je souhaite comparer une chaîne de caractère saisie par un utilisateur à une ListBox qui contient des chaines de caractères elle même récupérer d'une BDD Acces.
Voici l'erreur récurrente que j'ai :
"Impossible d'effectuer un cast d'un objet de type 'System.Data.DataRowView' en type 'System.String'."
Sur cette partie de code, l'erreur vient lors du débogage sur la ligne :
https://image.noelshack.com/fichiers/2017/19/1494495020-erreur.png
Exactement sur cette ligne :
"if (TBStyle.Text == (string) LSTStyles.Items[i])"
Le problème c'est que si je ne Cast pas il me demande alors de faire un Cast de la partie de droite en string ...
https://image.noelshack.com/fichiers/2017/19/1494495302-erreur-2.png
Je tourne en rond, si vous avais une solution à me proposer j'en serais bien content !
Merci à vous,
Anthony.
A voir également:
- Comparer un String à une ListBox
- Comparer prix amazon - Accueil - Commerce
- Prix Amazon : comment suivre les évolutions de tarifs - Guide
- Comparer pdf - Télécharger - PDF
- Audio comparer - Télécharger - Nettoyage
- Yasmine vient d'installer une application lampe de poche. elle a choisi celle qui demande un accès minimal à son smartphone en comparant ces deux applications : lampe torche gratuit sans publicité lampe torche gratuit puissante quelles sont les catégories d’autorisations demandées par l’application choisie par yasmine ? - Forum Sony
2 réponses
Bonjour,
Il y a une méthode commune à tous les objets qui retourne un string "représentant l'objet", c'est ToString().
Souvent ToString retourne le nom du type, mais ça vaut le coup d'essayer
Sinon, pour pouvoir faire un cast, il faut que la conversion ait été prévue dans l'objet et que tu castes vers le bon type.
Parce que selon la manière dont tu as bindé, Items[i] est peut être un DataRowView et non un string.
Ceci est peut être une solution
Pour la forme de ton mail, poster le code dans le post est plus lisible et permet des copier/coller, pense à utiliser la coloration syntaxique.
Aussi, on peut mettre des images dans le message, ça éviter de passer d'une page à l'autre en pleine lecture. C'est aussi décrit dans la FAQ en lien ci dessus.
Il y a une méthode commune à tous les objets qui retourne un string "représentant l'objet", c'est ToString().
Souvent ToString retourne le nom du type, mais ça vaut le coup d'essayer
if (TBStyle.Text == LSTStyles.Items[i].ToString())
Sinon, pour pouvoir faire un cast, il faut que la conversion ait été prévue dans l'objet et que tu castes vers le bon type.
Parce que selon la manière dont tu as bindé, Items[i] est peut être un DataRowView et non un string.
Ceci est peut être une solution
if (TBStyle.Text == ((DataRowView)LSTStyles.Items[i]).Items[x].ToString()
Pour la forme de ton mail, poster le code dans le post est plus lisible et permet des copier/coller, pense à utiliser la coloration syntaxique.
Aussi, on peut mettre des images dans le message, ça éviter de passer d'une page à l'autre en pleine lecture. C'est aussi décrit dans la FAQ en lien ci dessus.
Merci mais au final j'ai trouvé tout seul, je vous balance la solutions :
for (int i = 0; i < LSTStyles.Items.Count; i++)
{
DataRowView DR = (DataRowView) LSTStyles.Items[i];
if (DR.Row.Table.Rows[i].ItemArray[1].Equals(TBStyle.Text) == true)
{
trouve = true;
}
}
Enfaîte j'ai du passer par un DataRowView, et j'ai bien galéré à trouver le bon chemin pour afficher le contenu de ma ListBox.
"DR.Row.Table.Rows[i].ItemArray[1].Equals(TBStyle.Text)"
Voici le fameux chemin, (i étant mon indice et 1 correspondant au 2eme champs de ma table ou je récupère mes string correspondant à ce qui est affiché dans ma Lst et Equals pour comparer ce qui a dans ma BDD à ce que j'ai saisie !)
for (int i = 0; i < LSTStyles.Items.Count; i++)
{
DataRowView DR = (DataRowView) LSTStyles.Items[i];
if (DR.Row.Table.Rows[i].ItemArray[1].Equals(TBStyle.Text) == true)
{
trouve = true;
}
}
Enfaîte j'ai du passer par un DataRowView, et j'ai bien galéré à trouver le bon chemin pour afficher le contenu de ma ListBox.
"DR.Row.Table.Rows[i].ItemArray[1].Equals(TBStyle.Text)"
Voici le fameux chemin, (i étant mon indice et 1 correspondant au 2eme champs de ma table ou je récupère mes string correspondant à ce qui est affiché dans ma Lst et Equals pour comparer ce qui a dans ma BDD à ce que j'ai saisie !)