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

VB.NET Discussion :

Filtrer DataGridView avec un champs de type numerique


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 15
    Par défaut Filtrer DataGridView avec un champs de type numerique
    Bonjour tout le monde
    S'il vous plaît j'ai besoin d'aide pour resoudre ce probleme
    Avec ce code qui fonctionne tres bien avec des champs access de type (Text) qui sont ( Publio_Nom+Publio_Etage )
    Mais j'ai pas reussi a rechercher dans le champs de type numerique qui est (Publio_Quantite) .. il ne fonctionne pas sans aucune erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
            Try
                Dim dv As DataView = Infotable.DefaultView
                dv.RowFilter = "Publio_Quantite+Publio_Nom+Publio_Etage LIKE '%" & TextBox1.Text & "%' "
            Catch ex As Exception
            End Try
        End Sub
    J'ai essaye meme de changer cette ligne comme ca mais si je tape comme exemple dans TextBox1 le nombre (60) .. s'affichera dans ma DataGridView1 meme les cordonnees avec le nombre (600)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     dv.RowFilter = "Publio_Quantite LIKE " & Val(TextBox1.Text) & " OR Publio_Nom LIKE '%" & TextBox1.Text & "%' OR Publio_Etage LIKE '%" & TextBox1.Text & "%'"
    Merci pour l'aide
    BEA

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Hola Beatrice,

    Sauf erreur de ma part, tout ce qui présenté dans le DataGridView est de type String. Alors, chercher une chaine représentant un nombre ou une qui représente un mot, c'est la même méthode.
    C'est ainsi que dans ton 2ème filtre, il faut enlever VAL et traiter TextBox1 comme dans les autres cas.

    Je fais quelques tests et si je trouve meilleure réponse, je la posterai.

    ...

  3. #3
    Membre averti
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 15
    Par défaut
    Merci beaucoup Phil Rob
    J'ai essaye de traiter TextBox1 comme les deux autres mais carrement ca ne fonctionne pas
    J'ai essaye avec le premier code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      dv.RowFilter = "Publio_Quantite+Publio_Nom+Publio_Etage LIKE '%" & TextBox1.Text & "%' "
    Alors ca fonctionne tres bien avec les deux champs de type (Text) mais avec le champs numerique j'ai eu confondre de resultat
    Merci

  4. #4
    Membre averti
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 15
    Par défaut
    Salut Phil Rob
    Apres une recherche au web .. j'ai trouve ce code qui fonctionne tres bien avec tous les champs .. seulement j'ai eu un petit probleme
    Apres le filtre lorsque j'efface le type de recherche dans TextBox1 .. ma DataGridView1 reste aussi vide .. normalement lorsque ma TextBox1 est vide .. toutes les cordonnees de ma table apparaissent dans ma DataGridView1
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        Try
            Dim dv As DataView = Infotable.DefaultView
            dv.RowFilter = "Publio_Nom LIKE '" + TextBox1.Text + "' OR Publio_Etage LIKE '" + TextBox1.Text + "' OR Convert(Publio_Quantite, 'System.String') LIKE '" + TextBox1.Text + "'"
        Catch ex As Exception
        End Try
    End Sub
    Merci beaucoup

  5. #5
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Je n'ai pas l'expérience du DataView et je n'ai pas de quoi l'expérimenter sous la main ...
    Mais par rapport à ce Filter, dv.RowFilter = Nothing ne peut-il résoudre le problème ou bien forcer le DataGridView à réinitialiser son contenu (en réaffectant son DataSource, par exemple).
    Désolé de ne pouvoir t'aider davantage sur ce coup là. Je vais me faire un exemple d'utilisation d'un DataView ...

  6. #6
    Membre averti
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 15
    Par défaut
    Bonne soir Phil Rob
    Merci beaucoup pour votre intention d'aide .. c'est gentil
    Croyez moi apres 6 heures de recherche .. j'ai essaye beaucoup de chose .. et enfin heureusement j'ai pu fabriquer le bon code qui fonctionne tres bien avec les 3 champs de type Numerique et Text
    Voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
            Try
                Dim dv As DataView = Infotable.DefaultView
                dv.RowFilter = "Convert( Publio_Quantite, 'System.String') LIKE '" & TextBox1.Text & "%' OR Publio_Nom LIKE '" & TextBox1.Text & "%' OR Publio_Etage LIKE '" & TextBox1.Text & "%' "
            Catch ex As Exception
            End Try
        End Sub
    Merci beaucoup
    Bonne nuit
    BEA

  7. #7
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Suite ...

    En cherchant un peu, je trouve chez Microsoft https://docs.microsoft.com/fr-fr/dot...inq-to-dataset :

    Le filtre d'un DataView peut être supprimé une fois le filtrage défini à l'aide de la propriété RowFilter. Le filtre sur un DataView peut être supprimé de deux manières différentes :

    Affectez à la propriété RowFilter la valeur null.

    Définissez la propriété RowFilter en tant que chaîne vide.
    J'espère que ceci te sera utile ...

  8. #8
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bravo !
    Bonne nuit à toi aussi.

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

Discussions similaires

  1. Insertion dans datagridview avec un champs de type colonne_comboboxe
    Par mounim_taoufik dans le forum Windows Forms
    Réponses: 1
    Dernier message: 05/11/2009, 09h09
  2. [MySQL] Problème d'insert avec un champ de type DateTime
    Par mademoizel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/05/2009, 04h45
  3. [MySQL] Insertion avec un champ de type date
    Par souadmaa dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 04/02/2008, 12h27
  4. Réponses: 8
    Dernier message: 16/08/2006, 15h39
  5. Problème avec les champs de type table
    Par devdev dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 16/12/2004, 17h05

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