cs_tintin972
Messages postés36Date d'inscriptionlundi 17 mars 2008StatutMembreDernière intervention16 mai 2008
-
12 mai 2008 à 00:53
Arthenius
Messages postés1182Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 6 septembre 2011
-
15 mai 2008 à 12:09
Salut à tous,
Je cherche à lier 3 tables voir ce post L'une des manière de lier les 2 dernieres tables serait que la requete qui rempli ma deuxiéme table me renvoi (output) un id...Mais je n'arrive pas à récupérer une valeur en sortie de ma requete..
Comment faire pour qu'une requete renvoi une valeur?? Est-ce possible?
Ma maniere de faire est la suivante...
Dans mon dataset je définis la requete et dans les propriétés je
définis un paramètre avec en direction output. Je le fais donc avec
l'assistant mais bon....
Pour affecter la valeur retour je définis une variable para (j'ai mi le
? par rapport aux erreur qui m'étaient retournés mais je sais pas a quoi ca correspond)...et je la place en
utilisant out dans mon appel...
decimal? para;
this.TableAdapter.Fill(this.mBSDBDataSet.PR_CP_DETAIL, out para);
Mais para semble être toujours null...
Merci d'avance pour votre aide...
Pierre qui roule n'amasse pas mousse...
ca m'a l'air d'être a peu près ce que je veux faire...A tu une recommandation à faire?
Je test dès que possible la procédure stocké (j'ai un gros problème avec ma connection à la base de donné...comment faire pour sauvegarder la nouvelle version de la bdd (celle qui est dans bin\debug) à la place de la bdd "source"? )
Arthenius
Messages postés1182Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 6 septembre 201114 14 mai 2008 à 14:18
si tu est sous sql 2005 pas de souci
tu pourra faire une procedure stockee avec un parametre OUTPUT
et depuis c# bien mettre le param en direction.output et ca va rouler :)
cs_tintin972
Messages postés36Date d'inscriptionlundi 17 mars 2008StatutMembreDernière intervention16 mai 2008 14 mai 2008 à 17:23
Bon ...et la le mur....qui sépare le débutant du reste...
Premièrement quelle procédure faire?
ALTER PROCEDURE dbo.StoredProcedure1
@paramprod_id numeric OUTPUT
AS
SELECT *
FROM dbo.PRODUCT
SET
@paramprod_id = SCOPE_IDENTITY()
RETURN
Je doute que cette requete me retourne un product_id en fonction de la ligne sélectionné dans PRODUCT.
Comment faire ca?
Ensuite comment faire pour déclarer un paramètre?
SqlParameter param = new SqlParameter("@paramprod_id", SqlDbType.Decimal);
param.Direction = ParameterDirection.Output;
Comment faire appel a la procédureStoredProcedure1 ?
- StoredProcedure1 .Excutenonquery()
- ProductTableAdapter.FillbyProc(this.mBSDBDataSet1.ProductTable, ref param)
- autre
Arthenius
Messages postés1182Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 6 septembre 201114 14 mai 2008 à 17:40
en fait tu m'avais deja questionner la dessus, il me semble..
je crois que je vois ce que tu veux faire et la solution doit passer par un currencymanager a mon avis
en gros dis moi si je me trompe : tu a 3 table A, B et C
A l'entete, B qui pointe vers A et C qui pointe vers B ??
donc tu veux que lorsuqe tu cliques sur une ligne de B un datagrid ce charge avec les donnees de C Correspondant a ta ligne B ??
that's IT ??
si c'est ca il faudriat que je prenne un peu de temps pour te faire un exmple de source concret pour ca...mais pas avant demain entre midi et 2 ^^
essaie de me detailler exactement ce que tu veux faire si je n'ai pas compris et je tacherais de te faire un source exemple
cs_tintin972
Messages postés36Date d'inscriptionlundi 17 mars 2008StatutMembreDernière intervention16 mai 2008 14 mai 2008 à 18:03
En effet je t'ai questionné et tu m'avais suggérer l'utilisation du currency manager...Outil que je n'ai pas réussi à utiliser.
Non en fait c'est pas vraiment ca... J'explique avec des détails mon problème ici : Lier 3 tables
En version courte :
Mon Objectif : afficher une liste de composant pour un produit
j'ai une table PRODUIT(A) qui pointe sur une table TRANSITION(B) et une table COMPOSANT(C) qui elle aussi pointe sur (B).
Et je veux que quand je sélectionne un produit dans A...La liste correspond d'éléments B s'affiche et que celle des éléments C aussi s'affiche.... Le must serait qu'au finale j'arrive a mettre liste B+ liste C dans un même dgv...
Je suis sur que c super simple...mais ca me fait super ch....
En tous cas si tu peux me faire un exemple ca serait génial !!!
Arthenius
Messages postés1182Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 6 septembre 201114 15 mai 2008 à 10:04
oui t'inquiete je me baserais sur ce que tu a mis dans ton autre post ou tu detail un peu les champs cza ma permis de comprendre la structure de tes tables :)