Bonjour,
je bloque sur l'execution d'une procedure stockée en VB.Net :
Voici ma procédure stockée :
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
21
22
23
24
25
26
27
28
29
 
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
 
 
 
-- =============================================
-- Author:		<
-- Create date: <17/12/2008>
-- Description:	<Permet de"charger" dans T_ExtraitDISoldées les Serial pour l'appli RobotIndicateurTestFianl>
-- =============================================
ALTER PROCEDURE [dbo].[sgm_ExtraitNSPFinTestFinal]
	-- Add the parameters for the stored procedure here
	@ListeNS as nvarchar(1024)	
AS
 
-- Vide la table 
DELETE FROM T_ExtraitDISoldees  --Je vide ma table au préalable.
 
 
INSERT INTO T_ExtraitDiSoldees(DI,Ns_NewPfin,Ns_PFin,DateSolde,Code_NewPFIN,Defaut_Client,Statut_DI,
			Famille,Ns_CIE,Date_DI)
SELECT  infoDI.DI, NS_NewPFin, NS_PFin,Date_SoldeSAP, Code_NewPFIN,CodeDefaut,Statut,Famille,Ns_CIE,Date_DI
FROM data_rgw.dbo.infoDI infoDI 
INNER JOIN ( SELECT MAX(Date_DI) AS maxDate, DI  FROM data_rgw.dbo.infoDI  GROUP BY DI ) s 
ON infoDI.DI = s.DI AND infoDI.Date_DI = s.maxDate
WHERE infodi.Ns_PFin IN (@ListeNS) 
ORDER BY Date_DI DESC
La requête en elle-même marche. Je l'ai testé avec le paramètre que j'essaie de lui passer :
'023000079220','023000103905','023000093379','023000095317','023000084428','808062019856','808054018825',
'023000079220','023000103905','023000093379','023000095317','023000084428','023000096190','808062019856',
'808054018825','507486013221','808034048129','808024019361'

Quand je remplace @ListeNS dans la requête elle me retourne bien des enreg.
Par contre, quand je lance mon appli et que je passe par VB.Net donc, elle ne me retourne aucun enregistrement....

Voici mon code VB.Net (qui plante puisque c'est pas la requête ):
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
21
 
cnE = New SqlConnection(MainForm.sChaineConnexion2)
 
cnE.Open()
 
commandE = New SqlCommand(sNomProcedure, cnE)
 
commandE.CommandText = sNomProcedure
commandE.CommandTimeout = 120
commandE.CommandType = CommandType.StoredProcedure
If Not vParametre = "" Then
Dim oParam As SqlParameter = commandE.Parameters.Add(New System.Data.SqlClient.SqlParameter("@ListeNS", System.Data.SqlDbType.NVarChar, 1024))
            oParam.Value = vParametre  'contient bien la bonne valeur
End If
commandE.ExecuteNonQuery()
 
ExecuteProcedureStocke = True
msMsgConnexion = "ExecuteProcedureStocke OK"
 
cnE.Close()
cnE = Nothing
Je pense que c'est au niveau de la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Dim oParam As SqlParameter = commandE.Parameters.Add(New System.Data.SqlClient.SqlParameter("@ListeNS", System.Data.SqlDbType.NVarChar, 1024))
Mais je ne sais pas comment controler s'il passe le paramètre ou non à ma variable @ListeNS ...

Merci d'avance pour votre aide...