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 :

Filtre depuis une listbox vers datagridview [Débutant]


Sujet :

VB.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 123
    Points : 83
    Points
    83
    Par défaut Filtre depuis une listbox vers datagridview
    Bonjour,

    je ne comprends pas pourquoi j'arrive à filtrer le contenu d'un DGV depuis une listbox lorsque la listbox contient des Integer et pas lorsque ce sont des String.
    Bien entendu, le filtre ne s'applique pas sur la même colonne.

    Lors du chargement du formulaire, je remplis la listbox de valeurs unique et le DGV avec toutes les données, cela fonctionne très bien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Public Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
     
            Dim csvPath As String = "C:\itunes\test.csv"
     
            'Create a DataTable.
            Dim dt As New DataTable()
     
            ' Create  typed columns in the DataTable.
            dt.Columns.Add("col1", GetType(Integer))
            dt.Columns.Add("col2", GetType(DateTime))
            dt.Columns.Add("col3", GetType(String))
            dt.Columns.Add("col4", GetType(Integer))
            dt.Columns.Add("col5", GetType(String))
            dt.Columns.Add("col6", GetType(String))
            dt.Columns.Add("col7", GetType(String))
            'charger les données du fichier csv
            Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(csvPath)
                MyReader.TextFieldType = FileIO.FieldType.Delimited
                MyReader.SetDelimiters(";")
     
                Dim currentRow As String()
                Dim numCol As Integer
                Dim dico As New HashSet(Of String) 'dico pour tester les valeur à mettre dans listobx
     
                While Not MyReader.EndOfData
                    dt.Rows.Add()
                    Try
                        currentRow = MyReader.ReadFields()
     
                        Dim currentField As String
                        numCol = 0
                        For Each currentField In currentRow
                            dt.Rows(dt.Rows.Count - 1)(numCol) = currentField 'chargement de la datasource
                            numCol = numCol + 1
                            If numCol = 3 Then 'ajout éventuel au dico qui servira à remplir la listbox de valeurs uniques
                                If dico.Contains(currentField) = True Then
     
     
                                Else
                                    dico.Add(currentField)
     
                                    ListBox1.Items.Add(currentField)  'ajout au listbox le champ
                                End If
                            End If
                        Next
     
                    Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
                        MsgBox("Line " & ex.Message &
            "is not valid and will be skipped.")
                    End Try
     
                End While
     
                Dim bs As New BindingSource
                bs.DataSource = dt
                DG1.DataSource = bs
     
            End Using
    End Sub
    La où ça se gâte, c'est en selectionnant une donnée dans la listbox qui doit filtrer le DGV.
    J'ai une erreur qui indique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Data.EvaluateException : 'Cannot find column [UND].'
    -> où UND est par exemple la valeur sélectionnée dans la listbox

    Voici le code sur la listbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
     
            Dim bs As New BindingSource
            bs.DataSource = Me.DG1.DataSource
     
            bs.Filter = "col3=" & ListBox1.SelectedItem
     
        End Sub
    Qu'est ce que je n'ai pas compris ? Merci
    Jérémy

  2. #2
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 420
    Points : 2 179
    Points
    2 179
    Par défaut
    Bonjour,
    On traite les numérique comme des numérique et les string comme des string!
    bs.Filter = "col3='" & ListBox1.SelectedItem & "'"

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 123
    Points : 83
    Points
    83
    Par défaut
    Tout simplement, merci !
    Jérémy

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

Discussions similaires

  1. Recherche intuitive depuis une textbox vers une listbox
    Par bobkgb40 dans le forum Microsoft Office
    Réponses: 2
    Dernier message: 22/04/2020, 20h41
  2. [Débutant] Glisser Deposer depuis une listbox vers une application
    Par Matou85 dans le forum VB.NET
    Réponses: 2
    Dernier message: 16/04/2018, 06h00
  3. Filtre d'une feuille vers Listbox avec Combobox
    Par yieiii dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/02/2010, 12h59
  4. DragDrop d'une Listbox vers un Datagridview
    Par simon59193 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 07/10/2009, 17h50
  5. Réponses: 16
    Dernier message: 20/03/2006, 23h21

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