Datagridview, la colonne qui change
Fermé
L'éternel étudiant
-
Modifié par L'éternel étudiant le 4/04/2016 à 14:13
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 - 5 avril 2016 à 17:28
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 - 5 avril 2016 à 17:28
A voir également:
- Datagridview, la colonne qui change
- Déplacer une colonne excel - Guide
- Colonne word - Guide
- Additionner colonne excel - Guide
- Trier colonne excel - Guide
- Figer colonne excel - Guide
2 réponses
Whismeril
Messages postés
19029
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 avril 2024
931
4 avril 2016 à 21:52
4 avril 2016 à 21:52
Bonsoir
je ne travaille pas avec des bases de données, donc les subtilités avec les dataset m'échappent.
Par contre le datagridview, je gère, et ça n'est pas fait pour faire des calculs.
Ça n'est ni pratique, ni performant.
Pour additionner deux produits ça te prend 4 conversions de type, et autant de sélections d'item.
En plus tu commences par binder la grille sur le dataset (ce qui est la bonne utilisation) puis tu ajoutes une colonne à la main, et tu faits tes calculs (c'est là que ça merdoit à mon avis).
Si tu écris une classe, dont chaque propriétés est une colonne du datagridview final (y compris le résultat). Les données numériques seront converties une fois pour toute à l'initialisation.
La propriété Resultat sera en lecture seule et retournera ton calcul avec les 4 propriétés qui vont bien.
Tu charges une listeOf() de cette classe via ton dataset ou linqToSql. Tu bindes cette liste.
Pour le binding, tu peux utiliser cette méthode
https://codes-sources.commentcamarche.net/faq/1291-utilisation-du-binding-au-travers-de-l-objet-databindingsource
je ne travaille pas avec des bases de données, donc les subtilités avec les dataset m'échappent.
Par contre le datagridview, je gère, et ça n'est pas fait pour faire des calculs.
Ça n'est ni pratique, ni performant.
Pour additionner deux produits ça te prend 4 conversions de type, et autant de sélections d'item.
En plus tu commences par binder la grille sur le dataset (ce qui est la bonne utilisation) puis tu ajoutes une colonne à la main, et tu faits tes calculs (c'est là que ça merdoit à mon avis).
Si tu écris une classe, dont chaque propriétés est une colonne du datagridview final (y compris le résultat). Les données numériques seront converties une fois pour toute à l'initialisation.
La propriété Resultat sera en lecture seule et retournera ton calcul avec les 4 propriétés qui vont bien.
Tu charges une listeOf() de cette classe via ton dataset ou linqToSql. Tu bindes cette liste.
Pour le binding, tu peux utiliser cette méthode
https://codes-sources.commentcamarche.net/faq/1291-utilisation-du-binding-au-travers-de-l-objet-databindingsource
J'ai trouvé beaucoup plus simple en cherchant un peu sur des méthode différente pour arriver a mon résultat:
Dim ds As DataSet = SQLrécupération("SELECT TableClient.Nom, TableFacture.Date, TableFacture.NumFacture, TableMO.Temps, TableMO.Prix AS PrixMO, Tablecontenu.Intitule, Tablecontenu.Quantite, TableContenu.Prix, TableMO.Temps * TableMO.Prix + Tablecontenu.Quantite * TableContenu.Prix AS TOTALHT
FROM TableFacture, TableClient, TableMO, Tablecontenu
WHERE TableFacture.PersonneID = TableClient.PersonneID
AND TableFacture.MOID = TableMO.MOID
AND Tablefacture.ContenuID = TableContenu.ContenuID
;")
DataGridView1.DataSource = ds.Tables(0)
Whismeril
Messages postés
19029
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 avril 2024
931
5 avril 2016 à 17:28
5 avril 2016 à 17:28
Ce qui revient à ce que je te proposais mais dans la requête sql....