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

ADO.NET Discussion :

Filtre DataTable et DataGridView [Débutant]


Sujet :

ADO.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 42
    Points : 38
    Points
    38
    Par défaut Filtre DataTable et DataGridView
    Bonsoir,

    Ci dessous mon bout de code.
    J'utilise Visual Studio 2010 Express et .net Framework 4.0

    => Le datagrid s'affiche correctement sans filtre :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    DtgDonnees.DataSource = DtsBase.Tables("D")

    => Par contre, impossible de l'afficher avec un Select
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    DtgDonnees.DataSource = DtsBase.Tables("D").Select("NoDonnee=1")
    Il n'affiche qu'une ligne : mes champs sont vides ; il ajoute les champs "RowError" : Vide ; "RowState" contient Unchanged ; "Table" : vide ; "HasErrors" : case à cocher non cochée

    * Vu avec Access : la table contient bien un champ pour "NoDonnee=1"
    Il ne va pas à la routine d'erreur.

    *J'ai essayé avec des filtres sur d'autres champs, l'ajout d'une clé primaire, ... toujours pareil

    * J'ai essayé ("[NoDonnee]=1")

    *Les données sont bien sélectionnées : la routine suivante me donne les bonnes données :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            'Dim FoundRows As DataRow()
            'FoundRows = DtsBase.Tables("D").Select("NoDonnee=1)
            'For i As Integer = 0 To FoundRows.Length - 1
                 'MsgBox(FoundRows(i)(3))
            'Next

    Je ne sais plus quoi faire...

    Merci pour votre aide

    Code VB.NET : 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
     
            ===========================================
            Dim StSql As String
     
            'Ouverture de la connection       
            CnxStr = "provider = microsoft.jet.oledb.4.0 ; data source = " & My.Settings.BddChemin & My.Settings.BddNom & ";"
            Cnx = New OleDbConnection(CnxStr)
            Cnx.Open()
     
            'Créer le dataset (copie des données en local)
            DtsBase = New DataSet("Base")
     
            '==============Créer la table "Donnees"
            DtsBase.Tables.Add("D")
     
            'Créer le dataadapter, lien entre la base et le dataset, table "Donnees"
            StSql = "SELECT Donnee.NoDonnee, Donnee.DateDonnee, Donnee.ConcerneDonnee, Donnee.TexteDonnee, Salarie.NomSalarie FROM Salarie INNER JOIN Donnee ON Salarie.NoSalarie = Donnee.CreateurDonnees;"
            DtaBase = New OleDbDataAdapter(StSql, Cnx)
     
            'Remplir le dataset Donnees
            DtaBase.Fill(DtsBase.Tables("D"))
     
            'Remplir le datagrid Donnees avec les données de la table Donnees
            On Error GoTo truc
            DtgDonnees.DataSource = DtsBase.Tables("D").Select("NoDonnee=1")
     
    .../...

    truc:
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox(Err.Description)

  2. #2
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Bonjour,
    Tout d'abord, utilise la balise Code (signe #) de ton éditeur pour rendre tes bouts de codes plus lisibbles.

    Pour arriver à filtrer correctement les données de ta grille, il est conseillé de passer par une DataView ou un bindingsource.
    N'oubliez pas le tag et

  3. #3
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Bonjour,
    Petite précision, DataTable possède un DataView par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonDatatable.DefaultView.RowFilter = "..."

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 42
    Points : 38
    Points
    38
    Par défaut
    Bonsoir,

    Tout d'abord, merci pour vos réponses. Voici le code que j'ai inséré, ça fonctionne à merveille en passant par un dataview :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Dtv As DataView
    Dtv = New DataView(DtsBase.Tables("D"))
    Dtv.RowFilter = "NoDonnee=1"
    DtgDonnees.DataSource = Dtv
    Ensuite, désolé de ne pas avoir utilisé la balise CODE. Je ferai attention.

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

Discussions similaires

  1. datatable et datagridview
    Par camer12 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 01/10/2011, 11h54
  2. Créer des filtres dans un DataGridView
    Par Nijin dans le forum VB.NET
    Réponses: 4
    Dernier message: 25/09/2010, 14h12
  3. effectuer un filtre sur mon DataGridview.
    Par solaar dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/06/2010, 14h36
  4. Réponses: 2
    Dernier message: 29/12/2008, 15h11
  5. Export DataTable ou DataGridView
    Par boulo dans le forum Windows Forms
    Réponses: 1
    Dernier message: 23/05/2007, 17h22

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