Bonjour,
Je bloque sur un truc qui doit être tout simple, mais ne touvant rien qui puisse m'aider, je fais appel à vous.
J'ai une procédure stokée qui crée une table temporaire, ajoute des valeurs dedans, et fais un select dessus à la fin des insertions.
Grosso modo elle ressemble à ça :
Côté C# et visual Studio, j'ai créé une classe LINQ to SQL (Test), j'ai glissé la procédure stockée en question dans le Method Pane du designer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 -- table temporaire qui va reçevoir les valeurs CREATE TABLE #TOTO (Val varchar(8000)) WHILE condition BEGIN INSERT INTO #TOTO (Val) VALUES (@Valeur) SET @Valeur = ... END SELECT Val FROM #TOTO ORDER BY Val asc DROP TABLE #COUNTER_VALUES
Ensuite voici le code que j'ai écrit pour obtenir le résultat de l'appel de cette procédure :
Le problème c'est que le type de retour de ma procédure est un int. Qui n'est dons pas ennumerable, et qui ne contient donc qu'une seule valeur (et est ici toujours égale à 0).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 List<string> rslt = new List<string>(); TestDataContext dtCntxt = new TestDataContext (ConfigurationManager.AppSettings.Get("sqlConnectionString")); var query = dtCntxt.ProcédureStockée1(arg1, arg2, ...); foreach (var c in query) { rslt.Add(c.ToString()); }
La porcédure réalisant d'autres traitement, j'ai pu vérifée qu'elle était bien exécutée. Le vrai problème c'est que je n'arrive pas à récupérer les valeurs retournées.
Dans les propiétés de la pocédure stockée (dans le designer) la valeur de Return Type est '(None)'.
ça vient peut être de là, mais je ne peux pas modifier cette valeur.
Avez vous une idée pour que je puisse récupérer le résultat de mon Select?
Merci
Partager