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 :

Recherche de row dans un DataGridView via une textbox [Débutant]


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Points : 86
    Points
    86
    Par défaut Recherche de row dans un DataGridView via une textbox
    Bonjour à tous,
    Voila je dois créer une recherche dans un datagridview qui ira sélectionner une row.
    Cette recherche devra s'effectuer dans un textbox où je saisie la/les premières lettres.
    En fonction de la quantité des lettres saisies dans la textbox, la recherche s'affine dans le datagridview.
    Par exemple :
    MonDgv contien dans le colonne 2 des noms (martin, arthur, patrick, patrice, martine,...)
    Si dans mon textbox je commence à saisir "mar", MonDgv selectionne la 1ere row(2) qui commence par "mar"...
    Ainsi de suite.
    1) Pour l'instant, j'ai fait une sub qui réalise un boucle (lit tout le dgv et compare le textbox avec le row(2).startwith... Si ok, la row trouvé se sélectionne et exit sub.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
            For Each row As DataGridViewRow In Lst_Depts.Rows
                If row.Cells(2).Value.ToString.StartsWith(TextBox1.Text) Then
                    row.Selected = True
                    Exit Sub
                End If
            Next
        End Sub
    Je trouve ça un peu lourd en ressource, n'y aurait-il pas un autre moyen plus light ?
    2) bien évidemment, il faudrai que la liste du dgv se recentre sur la sélection car mon dgv a plus de 200 lignes. Bon, là, aucune idée de comment faire... Si vous en avez une, je suis preneur.
    Merci
    Patrick

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    1/
    oui et non
    normalement on essai de ne pas travailler sur les controles, on garde les données qu'on lit dans une collection, on met la collection dans le dgv et on fait des recherches sur la collection
    néanmoins pour 200 lignes (très peu) ca ne pose pas de soucis, et puis pour avoir la ligne dans le dgv ca peut etre plus simple comme ca

    2/
    définir le dgv.currentcell doit ramener la ligne dans la partie visible du scroll
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    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
    Comme dit par Pol, perso je préfère travailler sur ma liste d'objet quitte à réaffecter une liste expurgée au DGV.

    Ca a l'avantage de résoudre le problème du point 2 en même temps.

    Sinon, pour tout de même gérer l'affichage dans le DGV, en utilisant l'intellisense, tu trouveras 4 propriétés qui t'aideront (surtout 2 d'entres-elles).
    Donc dans VS, tu tappes, le nom de ton DGV, tu mets un point et tu tapes "first". Tu trouveras ton bonheur ^^.
    Kropernic

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Points : 86
    Points
    86
    Par défaut
    Merci à tous les 2 pour votre aide.
    @Pol63,
    je ne vois pas comment utiliser le dgv.currentcell
    @Kropernic,
    Merci pour le first...
    Pour la communauté, ci-dessous une part de mon code, bon !! j'en suis pas très fier, mais il fonctionne. Si vous avez un meilleur idée...
    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
        Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
            For Each row As DataGridViewRow In Lst_Depts.Rows
                ' boucle de recherche sur la colonne 2
                If row.Cells(2).Value.ToString.StartsWith(TextBox1.Text) Then
                    row.Selected = True
                    Try
                        ' afin de ne pas coller la selection sur la 1ere ligne (visible) du dgv -> row.Index - 8
                        Lst_Depts.FirstDisplayedScrollingRowIndex = row.Index - 8
                    Catch ex As Exception
                        ' si error, gérée par ici, afficher normalement la row position par rapport au scroll.
                        Lst_Depts.FirstDisplayedScrollingRowIndex = row.Index
                    End Try
                    Exit Sub
                End If
                ' boucle de recherche sur la colonne 1
                If row.Cells(1).Value.ToString.StartsWith(TextBox1.Text) Then
                    row.Selected = True
                    Try
                        Lst_Depts.FirstDisplayedScrollingRowIndex = row.Index - 8
                    Catch ex As Exception
                        Lst_Depts.FirstDisplayedScrollingRowIndex = row.Index
                    End Try
                    Exit Sub
                End If
            Next
        End Sub
    Merci à tous
    Patrick

  5. #5
    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 une question car je suis curieux.

    Par quoi est peuplé ton DGV ? En clair, que mets-tu dans sa propriété Datasource ?
    Kropernic

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dgv.currentcell = row.cells(2)
    non ?

    sinon en effet mettre un try catch pour éviter un plantage si l'index n'existe pas c'est moche, autant vérifier le nombre de ligne, ca sera plus performant et plus propre
    tu as row.index, dgv.rows.count etc... tu dois bien pouvoir faire un if pour éviter ca ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Points : 86
    Points
    86
    Par défaut
    @Kropernic,
    c'est une Table issue d'une requete MySql puis je modifie le remplissage du dgv par une request LINQ (dataView)
    la requete me renvoie un paquet d'elements (deps et cantons), donc faut que je fasse le tri avant de les afficher dans un dgv dédié.
    qlq chose comme :
    Ici la fonction me retourne un integer afin de connaitre le nombre d'élements dans la collection (dep).
    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
        Public Function DistribToDgViewAndSortDepsCants(ByVal table As DataTable, ByVal dgv As DataGridView, Optional ByVal Cantons As Boolean = False) As Integer
            Dim DtView As New DataView
            If Not Cantons Then DtView = DepsOnly(table)
            If Cantons Then DtView = CantsOnly(table)
            dgv.DataSource = DtView
            Return DtView.Count
        End Function
        ''' <summary>
        ''' Tri de la base et récupération des Départements uniquement
        ''' </summary>
        ''' <param name="Table">Nom de la Table source</param>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Private Function DepsOnly(ByVal Table As DataTable) As DataView
            Dim query = From tb As DataRow In Table.AsEnumerable() Where Not tb.Field(Of String)("numero").StartsWith("C") Select tb
            Return query.AsDataView
        End Function
    @Pol63,
    yes, j'ai modifier le code :
    L'appelant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Private Sub tbDepTxt_TextChanged(sender As Object, e As EventArgs) Handles tbDepTxt.TextChanged
            Lst_Depts.FirstDisplayedScrollingRowIndex = DepTools.SelectRowByText(Lst_Depts, tbDepTxt.Text)
        End Sub
    La fonction dans une "futur" librairie.
    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
        Public Function SelectRowByText(ByVal Dgv As DataGridView, ByVal Txt As String) As Integer
            Dim RowPos As Integer = 0
            For Each row As DataGridViewRow In Dgv.Rows
                ' boucle de recherche sur la colonne 2
                If row.Cells(2).Value.ToString.StartsWith(Txt) Then
                    row.Selected = True
                    If row.Index < 8 Then
                        RowPos = row.Index
                    Else
                        RowPos = row.Index - 8
                    End If
                    Return RowPos
                    Exit Function
                End If
                ' boucle de recherche sur la colonne 1
                If row.Cells(1).Value.ToString.StartsWith(Txt) Then
                    row.Selected = True
                    If row.Index < 8 Then
                        RowPos = row.Index
                    Else
                        RowPos = row.Index - 8
                    End If
                    Return RowPos
                    Exit Function
                End If
            Next
            Return RowPos
        End Function
    Bon, là je ne te cache pas que je ne vais pas trop m'y attarder car, j'ai un grand nombre chose à faire encore sur ce "bout" de soft.
    Des webRequest, parsing de REST...
    Penses-tu que cette partie du code est correcte ?
    Merci
    Patrick

  8. #8
    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
    Pourquoi alors ne pas refaire une requête linq pour filtrer le contenu du DGV ?
    Kropernic

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Points : 86
    Points
    86
    Par défaut
    Oui, pourquoi pas, mais je ne vois pas où tu veux en venir par un tri sur le dgv en LINQ ?
    en LINQ je ne vois pas comment je vais faire le même job que la "Function SelectRowByText"...

  10. #10
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim query = (From x as MyClass in MyCollection
                               Where x.Name.StartsWith(TextBox1.Text)
                               Select x)
     
    myDgv.Datasource = query.ToList
    Par exemple... A adapter à ta situation bien sûr.

    Ou bien si tu as déjà une collection (je bosse pas avec les objets de type dataview donc à ce niveau-là, je sais pas trop comment ils fonctionnent), tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myDgv.Datasource = myCollection.Where(Function(x) x.Name.StartsWith(textbox1.Text))
    En supposant que les objets de ta collection aient une propriété nommée "Name".

    Ca évite de faire des boucles et ça allège le code pour relecture.
    Kropernic

  11. #11
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Points : 86
    Points
    86
    Par défaut
    Bonsoir Kropernic
    Je ne connais pas trop ce genre de "fonction" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myDgv.Datasource = myCollection.Where(Function(x) x.Name.StartsWith(textbox1.Text))
    Mais à la lecture de cette ligne cela est tres intéressant, je l'integre demain.
    Merci à Pol63 et, toi, Kropernic pour le coup de main et le partage.
    Patrick

  12. #12
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Function(x) x.Name.StartsWith(textbox1.Text)
    équivaut à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private function unnom(x) as boolean
      return x.name.startswith(textbox1.text)
    end function
    on appelle ca une fonction anonyme car elle n'a pas de nom, mais ca fait la même chose

    par contre il est préférable dans les 2 cas de préciser le type de x (as quelque chose)

    .where () prend en paramètre une fonction qui retourne un booléen (donc tout ce qui retourne true est pris)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Points : 86
    Points
    86
    Par défaut
    Bonjour Pol63.
    Excellent, cette fonction anonyme, et pour l'explication, parfait. C'est bien plus clair pour moi, maintenant.
    Je vais pouvoir, ainsi, raccourcir le code et le rendre "plus clair"... pour ceux qui connaissent cette "fonction".
    bah, si tu en as d'autres comme ça, huuuu!!! je prends
    Merci encore.
    Patrick

  14. #14
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    il y a aussi les sub anonymes, et les alcooliques anonymes

    mais en .net il y a plein de choses qui nous font gagner du temps ou des possibilités une fois qu'on les connait, mais qu'on ne connait pas forcément (linq, reflection, expressions ...)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  15. #15
    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
    Citation Envoyé par Pol63 Voir le message
    mais en .net il y a plein de choses qui nous font gagner du temps ou des possibilités une fois qu'on les connait, mais qu'on ne connait pas forcément (linq, reflection, expressions ...)
    C'est clair !! Pas plus tard que ce matin, j'ai découvert les arborescences d'expression avec linq. J'ai pas encore tout compris mais ça m'a l'air pas mal une fois qu'on sait jouer avec.
    Kropernic

  16. #16
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Points : 86
    Points
    86
    Par défaut
    Bonjour Pol63 et Kropernic
    J'ai qlq difficulté à mettre en place cette fameuse fonction (anonyme ou lambda).
    dt est un DataTable rempli par une requete MySql, et j'ai bien testé, dt est bien rempli.

    Donc, je souhaite faire un tri sur la colonne(1) avec l'expression lambda :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dgvtest.DataSource = dt.AsEnumerable.Where(Function(x As DataRow) x.Item(1).ToString.StartsWith("C"))
    ça ne renvoi rien !!! mais pas d'erreur.

    Alors j'ai poussé plus loin pour tester cette hisoire de "AsEnumerable" avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            For Each ele As DataRow In dt.AsEnumerable
                If ele.Item(1).ToString.StartsWith("C") Then
                    MsgBox(ele.Item(1).ToString)
                End If
            Next
    Le Msgbox me renvoie bien ce que je souhaite.

    Donc, il y a qlq chose, dans l'expression Lambda, qui ne convient pas, mais je ne vois pas comment résoudre le problème.
    Merci
    Patrick

  17. #17
    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'utilise mais ne suis pas encore expert mais en attendant que Pol passe dire bonjour, peux-tu tester en ajoutant .ToList après la fonction anonyme ?
    Kropernic

  18. #18
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    j'étais déjà passé en fait, mais je n'avais pas spécialement d'idée, .tolist est un bon début ^^

    par contre tu parles de tri, .where c'est pour un filtre

    sinon peux tu confirmer que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if dt.rows.count > 0 then msgbox "> 0 ok"
    dim ds = dt.AsEnumerable.Where(Function(x As DataRow) x.Item(1).ToString.StartsWith("C"))
    if ds.count = 0 then msgbox "trop filtré !"
    dgvtest.DataSource = ds
    auquel cas passe en revue toutes les lignes en espion express pour voir si ce n'est pas toi qui pense qu'il y a des choses qui commencent par C alors que non
    sinon moi pour des filtres je fais .tostring.tolowser.Startswith("c")
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  19. #19
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Points : 86
    Points
    86
    Par défaut
    Bonjour Kropernic,
    En effet, il y a du changement, il me retourne 4 elements (la quantité que j'attend), mais ils sont vides.
    De plus la liste ne correspond pas à mes colonnes de la table (dt).
    d2015_MySqlResultAsTable est un DataTable qui correspond au resultat de ma Query Sql.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Dim dt As DataTable = d2015_MySqlResultAsTable
            dgvtest.DataSource = dt.AsEnumerable.Where(Function(x As DataRow) x.Item(1).ToString.StartsWith("C")).ToList
    donc, pas mieux
    Merci pour ton idée, car dans d'autres cas, ça pourrait être intéressant, ce fameux "tolist"...
    Patrick

  20. #20
    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
    Citation Envoyé par patrickvier Voir le message
    Bonjour Kropernic,
    En effet, il y a du changement, il me retourne 4 elements (la quantité que j'attend), mais ils sont vides.
    De plus la liste ne correspond pas à mes colonnes de la table (dt).
    d2015_MySqlResultAsTable est un DataTable qui correspond au resultat de ma Query Sql.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Dim dt As DataTable = d2015_MySqlResultAsTable
            dgvtest.DataSource = dt.AsEnumerable.Where(Function(x As DataRow) x.Item(1).ToString.StartsWith("C")).ToList
    donc, pas mieux
    Merci pour ton idée, car dans d'autres cas, ça pourrait être intéressant, ce fameux "tolist"...
    Patrick
    Le fait que la liste ne correspond pas aux colonnes de la table me semble bizarre...

    Par curiosité, peux-tu replacer AsEnumerable par Rows (juste avant le .Where) ?
    Kropernic

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] Changer couleur d'une row dans un Datagridview bindé
    Par jeremyvb11 dans le forum VB.NET
    Réponses: 5
    Dernier message: 13/01/2013, 15h32
  2. Bloquer une seule Row dans un DataGridView
    Par Contrec dans le forum C#
    Réponses: 4
    Dernier message: 05/09/2007, 13h07
  3. Réponses: 5
    Dernier message: 10/11/2006, 11h00
  4. Rechercher un mot dans les enregistrements d'une table access
    Par codial dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/11/2006, 21h35
  5. Mise en forme dans un RTF via une syntaxe personnelle
    Par sqwalichou dans le forum Autres langages
    Réponses: 2
    Dernier message: 24/02/2006, 22h19

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