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

Dotnet Discussion :

Filtrage DataGrid avec BDD [C#][WPF]


Sujet :

Dotnet

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 1
    Par défaut Filtrage DataGrid avec BDD [C#][WPF]
    Bonjour à tous,

    Je débute en C# WPF et travaille sur une application qui dispose d'un datagrid lié à une base de donnée MySQL (rattaché directement au projet avec l'assistant), sur ce datagrid je dois être capable d'ajouter, de supprimer, de mettre à jour, de filtrer mes données.
    Mon problème intervient sur cette dernière, le filtrage de données sur mon datagrid.

    Explication détaillée :

    J'ai réussi à insérer et supprimer des lignes dans ma base de données depuis mon datagrid mais je suis bloqué pour ce qui est du filtrage. En effet, je souhaite filtrer mon DataGrid en fonction du contenu d'un TextBox mais je n'y parviens pas. J'ai essayé de filtrer directement ma CollectionViewSource mais le problème est qu'ici je n'ai pas créé mes colonnes et items depuis mon code… je récupère tout depuis la base de données… Je n'ai donc pas d'ObservableCollection ou autres méthodes utiles sous la main. Pourriez vous m'indiquer quelle méthode serait le plus adaptée à cette situation pour filtrer mon DataGrid, ou comment utiliser le filtrage avec une collection dans mon cas ?

    Merci d'avance,

    Thomas

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour

    Si tu te lies à un DataTable il faut passer par un ListCollectionView pour implémenter le tri et le filtrage

    Code exemple:
    Code XAML : 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
    <Window x:Class="WpfDataSet.Window1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:local="clr-namespace:WpfDataSet"
            Title="Window1" Height="300" Width="300"
            >
     
        <Grid 
            >
     
     
            <DataGrid 
     
                AutoGenerateColumns="false" EnableRowVirtualization="True" Height="200" HorizontalAlignment="Left" ItemsSource="{Binding}" 
                      Name="clientsDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" Width="400">
                <DataGrid.Columns>
                    <DataGridTextColumn x:Name="Id" Binding="{Binding Path=ID}" Header="Id"  />
                    <DataGridTextColumn x:Name="Nom" Binding="{Binding Path=Nom}" Header="Nom"  />
                </DataGrid.Columns>
            </DataGrid>
        </Grid>
    </Window>

    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
     public partial class Window1 : Window
        {
            private ListCollectionView view = null;
            public Window1()
            {
                InitializeComponent();
                myTable = GetTable();
                view = new ListCollectionView(myTable.DefaultView);
                this.clientsDataGrid.ItemsSource = view;
     
     
     
                view.Filter = new Predicate<object>(Contains);
     
            }
            private void btnSort_Click(object sender, RoutedEventArgs e)
            {
     
                view.SortDescriptions.Add(
                    new SortDescription("Ville", ListSortDirection.Descending));
            }
            public bool Contains(object de)
            {
                DataRowView drv = de as DataRowView;
                return ((double)drv.Row["Salaire"] >=2000.0; 
            }
     
     
            private DataTable myTable;
            public DataTable MyTable
            {
                get { return myTable; }
                set { myTable = value; }
            }
            private DataTable GetTable()
            {
                DataTable dt = new DataTable("persons");
                dt.Columns.Add("ID", typeof(int));
                dt.Columns.Add("Nom", typeof(string));
                dt.Columns.Add("Ville", typeof(string));
                dt.Columns.Add("Salaire", typeof(Double));
     
                dt.Rows.Add(new object[] { 705, "item1", "METZ", 1000.0 });
                dt.Rows.Add(new object[] { 500, "item2", "MARSEILLE", 3000.0 });
                dt.Rows.Add(new object[] { 300, "Item3", "LYON", 2153.0 });
                dt.Rows.Add(new object[] { 400, "Item4", "METZ", 3458.0 });
                dt.Rows.Add(new object[] { 500, "Item5", "MARSEILLE", 2594.0 });
                dt.Rows.Add(new object[] { 100, "Item6", "LYON", 8500.0 });
                return dt;
            }
    bon code...

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/09/2014, 14h23
  2. Probléme modification datagrid vers BDD-WPF
    Par Damiens29 dans le forum C#
    Réponses: 0
    Dernier message: 03/05/2013, 12h05
  3. Réponses: 11
    Dernier message: 01/11/2011, 18h21
  4. Remplir un datagrid avec wpf à partir d'un fichier texte
    Par solim dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 06/05/2011, 10h33

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