Question pour les fous de datasets typés

Résolu
lkm Messages postés 43 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 23 novembre 2007 - 25 janv. 2007 à 21:51
lkm Messages postés 43 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 23 novembre 2007 - 27 janv. 2007 à 20:22
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

lkm Messages postés 43 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 23 novembre 2007
27 janv. 2007 à 20:22
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[:)]
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
26 janv. 2007 à 11:05
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]
0
lkm Messages postés 43 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 23 novembre 2007
26 janv. 2007 à 12:32
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[:)]
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
26 janv. 2007 à 13:16
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]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lkm Messages postés 43 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 23 novembre 2007
26 janv. 2007 à 14:00
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[:)]
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
26 janv. 2007 à 14:28
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]
0
Rejoignez-nous