Recherche par date sur un datagridview
Fermé
legr90
-
29 juil. 2016 à 14:00
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 - 4 août 2016 à 13:36
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 - 4 août 2016 à 13:36
A voir également:
- Recherche par date sur un datagridview
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Recherche par image - Guide
- Trier par date excel - Guide
- Comment ouvrir un fichier dat - Guide
- Recherche adresse - Guide
1 réponse
Utilisateur anonyme
29 juil. 2016 à 18:37
29 juil. 2016 à 18:37
Bonjour
en .Net les contrôles (DataGridView inclus) n'ont pas vocation à être des conteneurs de données, même si la possibilité (historique) est restée présente.
Le principe est d'utiliser des collections de classes judicieusement écrites.
Pour tout traitement sur les données (y compris les recherches) => travail avec les collections.
Pour afficher les données, utiliser le binding, voir un tuto ici.
Voici un exemple de recherche de personnes nées dans une période choisie.
Un exemple de classe, (y'en a plus que nécessaire pour l'exemple, mais je l'avais sous la main)
Initialisation d'une List et la recherche
en .Net les contrôles (DataGridView inclus) n'ont pas vocation à être des conteneurs de données, même si la possibilité (historique) est restée présente.
Le principe est d'utiliser des collections de classes judicieusement écrites.
Pour tout traitement sur les données (y compris les recherches) => travail avec les collections.
Pour afficher les données, utiliser le binding, voir un tuto ici.
Voici un exemple de recherche de personnes nées dans une période choisie.
Un exemple de classe, (y'en a plus que nécessaire pour l'exemple, mais je l'avais sous la main)
Public Class Personne Public Sub New() 'Constructeur vide, nécessaire si on veut initiliaser avec "les accolades" End Sub Public Sub New(ByVal Nom As String, ByVal Prenom As String, ByVal Naissance As String) 'Constructeur avec paramètres Me.Nom = Nom Me.Prenom = Prenom Me.Naissance = DateTime.Parse(Naissance) 'j'affecte la propriété comme ça l'age sera calculé End Sub Private privateNaissance As Date Public Property Naissance() As Date 'propriété avec calcul sur la variable interne Get Return privateNaissance End Get Set(ByVal value As Date) privateNaissance = value Age = Date.Now.Year - privateNaissance.Year End Set End Property Public Property Nom() As String Public Property Prenom() As String Public ReadOnly Property NomComplet() As String 'Propriété en lecture seule qui retourne le nom complet au format Prénom NOM Get Return String.Format("{0} {1}", Prenom, Nom.ToUpper()) End Get End Property Private privateAge As Integer Public Property Age() As Integer 'Propriété en écriture interne uniquement Get Return privateAge End Get Private Set(ByVal value As Integer) privateAge = value End Set End Property Public Overrides Function ToString() As String 'Réécriture de la méthode ToString qui retourne l'initiale du Prénom.Nom Return String.Format("{0}.{1}", Prenom.Chars(0).ToString().ToUpper(), Nom.ToUpper()) End Function Public Shared Function NouvellePersonne(ByVal Nom As String, ByVal Prenom As String, ByVal Age As Integer) As Personne 'méthode de classe pour une autre façon d'initialiser Return New Personne With {.Nom = Nom, .Prenom = Prenom, .Age = Age} End Function End Class
Initialisation d'une List et la recherche
Dim personnes As New List(Of Personne)() personnes.Add(New Personne("Sor", "Jean", Date.Parse("01/01/2002"))) personnes.Add(New Personne("Di", "Alain", Date.Parse("01/01/2001"))) personnes.Add(New Personne("Zètofrais", "Mélanie", Date.Parse("01/01/2000"))) personnes.Add(New Personne("Croche", "Sara", Date.Parse("02/02/2011"))) Dim recherche As List(Of Personne) = ( From p In personnes Where p.Naissance > Date.Parse("31/12/2000") AndAlso p.Naissance < Date.Parse("01/02/2000") Select p).ToList()
4 août 2016 à 13:36
Et le montage de class exactement ce que j ai besoin pour mes hamsters.
A+