Question pour les fous de datasets typés [Résolu]

Signaler
Messages postés
43
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
23 novembre 2007
-
Messages postés
43
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
23 novembre 2007
-
Bonjour à tous,

Voici une question pour les fous de datasets.

Tout d'abord, si vous connaissez des liens où je peux trouver des cours avancés sur les datasets typés je suis preneur.

Deuxièmement, j'aimerai avoir la réponse à cette question en espérant que quelqu'un aura réponse à cette question.

Mise en place du problème:
J'ai une BDD (Access ou SQL Server) avec 2 tables dedans, chacune ayant une clé primaire. Il existe une relation entre les deux tables.
Je créé une requête pour avoir des résultats venant des deux tables (SELECT table1.*, table2.* FROM (table1 INNER JOIN table2 ON ....))

Ensuite dans Visual Studio 2005, je créé un dataset typé à partir de ma requête.

Je créé une ligne, je la remplie et je l'ajoute à mon dataset typé.

Ensuite pour valider mon insertion, je fait un update en utilisant la requête et le dataadapter qui va bien.

Voici la question:
Ce que je souhaite savoir, c'est comment cette modification va être impactée dans ma BDD. Est ce que ADO ou la requête va créer automatiquement les enregistrements dans les deux tables, est ce que ça va faire n'importe quoi?

Quelqu'un a-t-il une réponse à cette question?

Merci d'avance

lkm[:)]

6 réponses

Messages postés
43
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
23 novembre 2007

J'ai pris le temps de faire le test dans un petit projet que je déposerai bientôt sur ce site.
Donc la réponse à ma question est oui!!! Si on fait un update sur un dataset typés qui représente en fait le résultat d'un requête qui fait un INNER JOIN entre deux tables, Access ou SQL Server se charge de faire les INSERT dans chacune des tables.

Démonstration bientôt dans la source que je posterai

lkm[:)]
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
un DataSet type n'est rien d'autre qu'une représentation object d'un schéma XML.

Concernant ta seconde question... je ne suis pas pour la jointure de 2 tables de ta BdD dans une seule DataTable de ton DataSet.
Je préfère créer 2 datatables et mettre une relation entre les 2... c'est plus propre.

Sébastien

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
43
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
23 novembre 2007

Sébastien merci pour ta réponse.

Merci également de me rappeler la définition d'un dataset typé, si tu connais des cours avancés sur les datasets (typés ou non) je suis preneur.

Pour ta deuxième réponse, je suis d'accord pour ce que tu dis maisest ce que cela ne signifie pas  que tu dois exécuter la procédure d'insert pour chacune des datatables, que tu dois avoir deux dataAdapter, deux procédures d'insert, d'update, de delete? ça fait beaucoup de choses, d'autant plus que j'ai pris l'exemple de deux tables mais pour ce que je veux faire je vais avoir une BDD  avec une quinzaine de tables.

Cependant je souhaite vraiment savoir quel sera le comportement de mon dataset et de ma BDD dans mon exemple précis.

Merci d'avance

lkm[:)]
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
dans ton exemple précis... c'est à toi de définir les requêtes d'ajout/suppression/mise à jour. Donc, c'est à toi de déterminer comment ça va se comporter.

quant à des cours sur les dataset... hum, je pense que le mieux est d'essayer de comprendre la documentation présente sur MSDN.

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
43
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
23 novembre 2007

Exuse moi d'insister mais si je fait un insert sur mon dataset qui correspond en fait à ma requête qui fait le INNER JOIN avec les deux tables. Est ce que je peux présumer que les modifications que je vais faire dans mon dataset après l'update vont être répercutés dans les 2 tables de ma BDD?

Dans tous les cas je te remercie pour tes réponses et ta patience.

lkm[:)]
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
Non... relit ma réponse...

C'est toi qui gère l'ajout, la suppression et la modification... Donc si tu ajoutes une lignes à ta DataTable, tu devras écrire la requête INSERT qui mettra à jour la (ou les) tables concernées.

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]