IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

MaskedTextBox et dataGridView [Débutant]


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut MaskedTextBox et dataGridView
    Bonjour,

    Après x^² essais je m'adresse à vous !
    Mon problème est le suivant, je requête une base dont un champ est numérique comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select id, Nom AS Nom,FORMAT(Symbole,'0-000-0000') AS Symbole FROM table_piece ORDER BY Nom"
    Je veux un format sous la forme "0-000-0000".
    Jusque là pas de soucis ! Je fais une DataTable en source de mon dataGridView.
    Or j'aimerais filtrer ce dataGridView, plus précisément la colonne qui comprend ce format avec un MaskedTextBox.
    ça fait une heure que je m'arrache les cheveux sur le problème, j'essaye de filtrer de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    (dgvPiece.DataSource as DataTable).DefaultView.RowFilter = string.Format(
                    "Symbole LIKE '{0}%'",textSymbolePiece.Text);
    (exemple de code car j'en ai essayé des dizaines)
    Je voudrais que si l'utilisateur ne remplit pas entièrement la MTextBox, le filtre fonctionne quand même, " -123- " => renvoie tous les résultats avec 123 au centre du format.
    Sinon j'ai essayé d'enlever les séparateurs des données du Dgv et puis je filtre simplement deux chaines, mais je n'arrive pas à manipuler la donnée du DGV.
    Je m'y prends peut être mal, peut être est il maladroit d'imposer le format au niveau du SQL...
    Mais je pense que le problème serait le même au niveau du filtrage...
    Si quelqu'un à déjà rencontré ce type de problème...

  2. #2
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Il manque un % au début de la chaîne de caractère que tu passes à l'opération LIKE en sql.

    En l'état, tu recherches les symboles qui commencent par ce que l'utilisateur a encodé.

    Si tu veux rechercher les symboles qui contiennent ce que l'utilisateur a encodé, il faut faire où xxx est ton paramètre.
    Kropernic

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Bien sur ça ce n'est pas un problème, le problème vient que si l'utilisateur veut juste rentré un chiffre par exemple "7-xxx-xxxx il ne renvoit pas tous les éléments, car le textBox.Text va renvoyer "7-___-____, là on pourrait dire simple du fait un String.Replace, or non car dans le DGV, les symbole sont sous le format 0-000-0000 et quand je fais les double replace il ne trouve rien.

  4. #4
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Mmmh... J'suis pas bien sûr de comprendre.

    Mais sinon comme dit dans l'autre discussion, filtrer sur le dgv comporte le risque de filtrer sur des données potentiellement obsolètes.

    Sinon personnellement, je ne filtrerais pas sur le dgv mais sur la liste que je lui passe et je mets ensuite à jour le dgv avec la nouvelle liste filtrée. Cela vous facilitera la vie
    Kropernic

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Le but étant d'avoir un maskedTextBox comme barre de "recherche" pour une colonne de mon DGV, colonne qui est formatée comme ceci:
    Dans la table Access : 08235612
    Dans le Dgv : 0-823-5612: à partir de là j'aurais aimé pouvoir filtrer selon le numéro:
    Or quand je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RowFilter = "Symbole like '%{0}%'
    Il faut prendre en compte que Symbole est un string de cette forme "x-xxx-xxxx", et donc si je veux faire une recherche il faut obligatoirement que les séparateur soit présents dans le maskedTextBox... Je ne peux pas juste écrire 4 chiffres et il me retourne tous les Symbole où ils figurent peut importe leurs positions...

  6. #6
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    J'ai trouvé ceci sinon...
    Kropernic

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. MaskedTextBox dans DatagridView
    Par domija dans le forum VB.NET
    Réponses: 0
    Dernier message: 14/06/2010, 20h36
  2. [c#] datagridview - trouver postion de la selection
    Par zeroox dans le forum Windows Forms
    Réponses: 7
    Dernier message: 15/04/2009, 13h48
  3. Probleme d'affichage avec un DataGridView
    Par kekesilo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/01/2007, 15h12
  4. [vb.net][MaskedTextbox] nombre indéfinis de characteres ?
    Par graphicsxp dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/12/2005, 19h43
  5. [VS2005][VB.Net] Custom Format dans un DataGridView
    Par Vonotar dans le forum VB.NET
    Réponses: 10
    Dernier message: 22/11/2005, 09h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo