Alimentation d'une DATAGRIDVIEWCOMBOBOX par une donnée SQLITE
Fermé
killbill81
-
Modifié le 26 avril 2020 à 12:49
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 26 avril 2020 à 15:14
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 26 avril 2020 à 15:14
A voir également:
- Alimentation d'une DATAGRIDVIEWCOMBOBOX par une donnée SQLITE
- Calculateur alimentation pc - Guide
- Alimentation ordinateur fixe - Guide
- Bouton d'alimentation - Guide
- Hp voyant alimentation clignote blanc - Forum Matériel & Système
- Logiciel de recuperation de donnée - Guide
4 réponses
Whismeril
Messages postés
19028
Date d'inscription
mardi 11 mars 2003
Statut
Non membre
Dernière intervention
24 avril 2024
931
Modifié le 26 avril 2020 à 12:40
Modifié le 26 avril 2020 à 12:40
Bonjour
Voici un court tuto pour bien utiliser les balises de codes et donc vien presenter ton code https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Pour le xaml, il faut choisir xml.
Tu as encore le temps d’éditer ton message.
Un autre point et pas des moindres, un datagridview et un datagrid sont deux contrôles très différents.
Le datagridview n’existe pas en xaml, c’est un contrôle winform et inversement.
Quand tu auras modifié, ta présentation, je pourrais mieux lire et avancer sur ton problème.
Voici un court tuto pour bien utiliser les balises de codes et donc vien presenter ton code https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Pour le xaml, il faut choisir xml.
Tu as encore le temps d’éditer ton message.
Un autre point et pas des moindres, un datagridview et un datagrid sont deux contrôles très différents.
Le datagridview n’existe pas en xaml, c’est un contrôle winform et inversement.
Quand tu auras modifié, ta présentation, je pourrais mieux lire et avancer sur ton problème.
Whismeril
Messages postés
19028
Date d'inscription
mardi 11 mars 2003
Statut
Non membre
Dernière intervention
24 avril 2024
931
26 avril 2020 à 13:01
26 avril 2020 à 13:01
C'est dommage, il y a longtemps que j'ai arrêté de bidouiller des contrôles winform, au profit du xaml bien plus souple et puissant.
Je vais tâcher de me pencher sur ton code, mais avec moins d'optimisme qu'il y a 20 minutes.
Je vais tâcher de me pencher sur ton code, mais avec moins d'optimisme qu'il y a 20 minutes.
Whismeril
Messages postés
19028
Date d'inscription
mardi 11 mars 2003
Statut
Non membre
Dernière intervention
24 avril 2024
931
26 avril 2020 à 15:14
26 avril 2020 à 15:14
Voilà ce que je te propose, tu écris une classe qui correspond à tous les champs de la table.
Un peu comme ComptaCsv, mais complet et la date de type DateTime
(travailler avec des dates en string est une erreur fondamentale, par exemple en string "01/12/2020" est avant "02/01/2020", ou encore "30/02/2020" existe) .
Ensuite, à partir de la datatable, tu charges une List<T>, un truc dans le genre
(source https://stackoverflow.com/questions/1427484/convert-datatable-to-listt )
C'est cette liste qui sera le DataSource du datagriview, à la place de la table.
Ensuite, pour chaque combobox, une requête Select.Distinct
Ensuite à priori tu devrais pouvoir affecter ces 2 listes comme source des combobox.
Je dis à priori, car je n'ai pas essayé, j'ai tapé ces lignes directement dans le message.
PS pour Sqlite, je me sers d'une classe qui permet de charger directement dans des List<T> et de faire des requêtes Linq sans Datatable: sqlite-net https://www.nuget.org/packages/sqlite-net/ . Tu peux la télécharger avec le gestionnaire NuGet de Visual Studio
PS2 le solde étant le résultat d'une opération, il n'est pas forcément nécessaire que ce soit un champ dans la base de donnée.
Un peu comme ComptaCsv, mais complet et la date de type DateTime
(travailler avec des dates en string est une erreur fondamentale, par exemple en string "01/12/2020" est avant "02/01/2020", ou encore "30/02/2020" existe) .
Ensuite, à partir de la datatable, tu charges une List<T>, un truc dans le genre
List<Compta> comptas = table.AsEnumerable().Select(m => new Compta() { Date = m.Field<DateTime>("DATE"), Libelle = m.Field<string>("LIBELLE"), Montant = m.Field<double>("MONTANT"), //ect pour tous les champs }).ToList()
(source https://stackoverflow.com/questions/1427484/convert-datatable-to-listt )
C'est cette liste qui sera le DataSource du datagriview, à la place de la table.
Ensuite, pour chaque combobox, une requête Select.Distinct
List<string> categories = comptas.Select(c => c.Categorie).Distinct(); List<string> sousCategories = comptas.Select(c => c.SousCategorie).Distinct();
Ensuite à priori tu devrais pouvoir affecter ces 2 listes comme source des combobox.
Je dis à priori, car je n'ai pas essayé, j'ai tapé ces lignes directement dans le message.
PS pour Sqlite, je me sers d'une classe qui permet de charger directement dans des List<T> et de faire des requêtes Linq sans Datatable: sqlite-net https://www.nuget.org/packages/sqlite-net/ . Tu peux la télécharger avec le gestionnaire NuGet de Visual Studio
PS2 le solde étant le résultat d'une opération, il n'est pas forcément nécessaire que ce soit un champ dans la base de donnée.