Bonjour à tous,
J'ai une procédure stockée 'GET_employe' qui fonctionne très bien. Dans cet procédure, il y a juste une requête qui me récupère la liste de mes employés en lui faisant passer un id en paramètre.
Petit exemple simplifié:
J'intègre cela dans SL depuis l’explorateur de serveurs, je fais glisser ma procédure sur le Designer Linq To SQL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 ALTER PROCEDURE GET_employe @matricule as varchar(8) AS SELECT nom, prenom, adresse FROM T_employe WHERE Emp_actif = 1 AND Emp_matricule = @matricule RETURN
Et je l'appel via
Et la tous fonctionne, alors vous allez me demander pourquoi je viens vous enmbeter ^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 DataClasses1DataContext data = new DataClasses1DataContext(); var toto = data.GET_employe("02840013"); foreach (var pointeur in toto) { ... }
En fait, j'essaye de modifier ma procédure pour faire une recherche sur Emp_matricule, seulement si la variable @matricule n'est pas vide. Je n'est trouvé que cet solution:
Et la plus rien ne fonctionne. SL me répond le message:
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
17
18
19
20 ALTER PROCEDURE GET_employe @matricule as varchar(8) AS DECLARE @req as varchar(8000) SET @req ='SELECT nom, prenom, adresse FROM T_employe WHERE Emp_actif = 1 ' IF(@matricule != '') BEGIN SET @req = @req + 'AND Emp_matricule = '''+@matricule+'''' END EXEC(@req) RETURN
Sachant que dans ma variable toto, il me retourne juste 0.L'instruction foreach ne peut pas fonctionner sur des variables de type 'int', car 'int' ne contient pas de définition public pour 'GetEnumerator'
Encore moins compréhensible pour moi, si je fait un
Juste avant ma requête, dans ma procédure, cela fonctionne.SET @matricule = '02840013'
Désolé pour cet lonnngue explication mais je commence à craquer ^^
Merci de votre aide![]()
Partager