Dataset & dataadapter

ad_sayouri Messages postés 15 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 7 décembre 2006 - 5 avril 2005 à 18:07
titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 - 8 avril 2005 à 11:33
Bonjour,j'ai un pb c'est qu'un utilisateur doit remplir un grand formulaire,les données ce formulaire seront stockées en deux tables,une table pricipale est une table secondaire dont la clé primaire est une clé secondaire pour la pricipale.Coment peut on faire pour remplir une table secondaire sashant que son premier champ correspond à un code que sera incrémenté aprés le remplissage des données aprés .en utilisant dataset et datadapter de C#.net
merci d'avance.

3 réponses

dibouched Messages postés 219 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 17 juillet 2007 2
6 avril 2005 à 12:53
je voie pas pourquoi tu vais utilise dataset et dataadapter
tu peux simplement faire l'insertion dans la tabla principale ensuite tu fait un select Max du chanp de la table secondaire
tu le met dans une variabal avec datareader ensuite tu le incremente ou decremente
c'est au chois et tu fait l'insertion dans la deusieme table

Dibou
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
6 avril 2005 à 18:02
avec un select max si tu a plusieurs utilisateur qui travaille en meme temps 9 chance sur 10 que tu ne retourne pas le bon enregistrement...

le plus simple est de gérer un code unique et de recherche via ce code unique la cle primaire de ta table principal

si par hasard tu utilise les procedures stockee a la fin de ton insert tu met select @@identity
(sous sql serveur)

CREATE PROCEDURE dbo.T_CIVILITE_INSERT


(


@CIVCOD
varchar(10),


@CIVLIB
varchar(30)


)


AS



INSERT INTO T_CIVILITE


( CIVCOD, CIVLIB)



VALUES


(@CIVCOD, @CIVLIB);


SELECT @@IDENTITY ;

et qd tu fais un MA_VALEUR = Convert.ToInt32(INSERT.ExecuteScalar ());

la tu est sur que tu a le compteur qui viens d'etre créer...meme en multi user


Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."
0
titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 1
8 avril 2005 à 11:33
Pour répondre exactement au probleme des contraintes PF/FK, tu retires la contraintes ma pk et table2 est FK de table1 et ensuite tu procede comme suit :

1/ tu insere tes datas dans ta table 2 sans mettre la FK

2/ tu insere tes datas dans ta table 1 et tu récupere la FK via la solution de Arthenius car c'est la meilleure.

3/ tu fais un update de ta table 2 avec la PK que tu viens de récupérer.

Comme ceci tu peux insérer tes datas dans la table 2 puis celles de la table 1 et avoir ton lien.

Ceci dit, je te conseille fortement de procédér a l'inverse, cad de remplir ta table1 en 1er et l'autre en 2e car ca te fera moins de code et ca te conservera ta contrainte d'intégrité sur ta base.
0
Rejoignez-nous