Meilleur auteur de réponses
Datagridview: inserer des données de 2 tables

Question
-
Bonjour,
J'ai 2 tables: 1 pour les clients avec un id_CLIENT et un NOM
1 autre pour les achats avec un ID_ACHAT et un id_CLIENT
Comment puis-je faire pour afficher dans un dataGridView tous les achats ainsi que le nom du client?
Exemple: j'ai deux clients DUPONT et DURAND
j'ai 4 achats donc 2 faits par DUPONT et 2 faits par DURAND
Je voudrai avoir l'affichage:
Achat1 | DUPONT
Achat2 | DURAND
Achat3 | DURAND
Achat4 | DUPONT
Merci.
Réponses
-
Bonjour,
Le plus simple dans votre cas est de créer une nouvelle DataTable dans un DataSet qui contient deux colonnes : "Achat" et "Client".
Ensuite, alimenter votre DataTable via la requête suivante :
SELECT * FROM Client INNER JOIN Achat ON (Client.id_CLIENT = Achat.id_Client).
Cordialement
Gilles TOURREAU - MVP C#
Architecte .NET/Consultant/Formateur chez Winwise
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5- Proposé comme réponse Ciprian Duduiala mardi 31 janvier 2012 07:19
- Marqué comme réponse Ciprian Duduiala jeudi 2 février 2012 08:14
-
Bonjour,
Si vous avez suivi la procédure précédente, Visual Studio a du vous créer un dataset branché à votre base.
Pour mieux voir les possibilité qu'un dataset peut offrir, je vous conseille de jeter un coup d’oil sur la documentation MSDN.
http://msdn.microsoft.com/fr-fr/library/04y282hb(v=vs.100).aspx
http://msdn.microsoft.com/fr-fr/library/system.data.dataset.aspx#Y0
Si jamais, vous peinez à implémenter votre fonctionnalité, vous pouvez nous poster votre code avec votre fichier base (un zip par exemple), on ne manquera pas
de vous faire l'implémentation. Car ce que vous cherchez à faire est beaucoup plus facile à implémentez que expliquer dans un forum et surtout une fois que vous aurez l'implémentation vous pouvez vous en inspirer pour faire d'autre opérations.
Cordialement.
- Proposé comme réponse Ciprian Duduiala mercredi 1 février 2012 08:42
- Marqué comme réponse Ciprian Duduiala jeudi 2 février 2012 08:14
Toutes les réponses
-
Bonjour,
Le plus simple dans votre cas est de créer une nouvelle DataTable dans un DataSet qui contient deux colonnes : "Achat" et "Client".
Ensuite, alimenter votre DataTable via la requête suivante :
SELECT * FROM Client INNER JOIN Achat ON (Client.id_CLIENT = Achat.id_Client).
Cordialement
Gilles TOURREAU - MVP C#
Architecte .NET/Consultant/Formateur chez Winwise
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5- Proposé comme réponse Ciprian Duduiala mardi 31 janvier 2012 07:19
- Marqué comme réponse Ciprian Duduiala jeudi 2 février 2012 08:14
-
Merci, mais comment je fais pour remplir cette nouvelle table?
Jusqu'à présent, je me servais des dataAdapter pour créer des requêtes.
Or, quand je crée cette nouvelle table dans mon dataset, je ne peux pas lui ajouter de requêtes (seulement des colonnes et des relations).
-
Bonjour,
Une autre solution qui pourrait aussi vous aider consisterait en utiliser un objet SqlDataSource :
- Ajouter un objet SqldataSource, soit SqldataSource1, à votre page aspx (vous pouvez le faire via le designer) http://msdn.microsoft.com/fr-fr/library/system.web.ui.webcontrols.sqldatasource(v=vs.80).aspx
- Assigner sa propriété SelectCommand à " SELECT Achat .ID_ACHAT, Client .Nom FROM Client INNER JOIN Achat ON (Client.id_CLIENT = Achat.id_Client)" (Vous pouvez faire la configuration via le designer) .
- Assigner la propriété DataSourceID de votre data grid à SqldataSource (vous pouvez aussi le faire via le designer).
Ce pattern pourra aussi vous permettre la prise en charge des autres opération (Insert, Update, Delete).
Cordialement.
-
-
Autan pour moi, j'étais parti sur l'idée d'une application ASP .NET, mais le principe reste le même.Suivez la procédure suivante :
- Placer vous sur la pagne de design de votre Form, puis placer vous sur votre DataGridView
- Dans la fenêtre properties, placer vous sur la propriété DataSource.
- Dans la liste déroulante cliquer sur "Add Project Data Source ..."
- Comme indiquer faite le choix "DataBase" puis cliquer sur Next.
- Puis faite le choix "DataSet" puis cliquer sur Next.
- Dans la nouvelle page, cliquer sur le bouton "New Connexion .."
- Choisissez "Microsoft SQL server Compact" comme type de connexion :
- Il suffit e suite de faire un browsing vers votre fichier de base.
- Puis laisser vous guider
- Modifié Ould MouradEditor lundi 30 janvier 2012 21:21
-
-
Bonjour,
Si vous avez suivi la procédure précédente, Visual Studio a du vous créer un dataset branché à votre base.
Pour mieux voir les possibilité qu'un dataset peut offrir, je vous conseille de jeter un coup d’oil sur la documentation MSDN.
http://msdn.microsoft.com/fr-fr/library/04y282hb(v=vs.100).aspx
http://msdn.microsoft.com/fr-fr/library/system.data.dataset.aspx#Y0
Si jamais, vous peinez à implémenter votre fonctionnalité, vous pouvez nous poster votre code avec votre fichier base (un zip par exemple), on ne manquera pas
de vous faire l'implémentation. Car ce que vous cherchez à faire est beaucoup plus facile à implémentez que expliquer dans un forum et surtout une fois que vous aurez l'implémentation vous pouvez vous en inspirer pour faire d'autre opérations.
Cordialement.
- Proposé comme réponse Ciprian Duduiala mercredi 1 février 2012 08:42
- Marqué comme réponse Ciprian Duduiala jeudi 2 février 2012 08:14
-
Bonjour, Bobinou65,
Est-ce que vous avez pu avancer en utilisant les informations reçues ? Merci de tenir la communauté informée sur la suite de vos démarches.
Cordialement,
Cipri
Ciprian DUDUIALA, MSFT  
•Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.
- Marqué comme réponse bobinou65 jeudi 2 février 2012 08:09
- Non marqué comme réponse Ciprian Duduiala jeudi 2 février 2012 08:14
-