J'ai un SqlCommand qui exécute une procédure stockée qui contient deux paramètres de sortie entiers. Juste avant l'exécution de SqlCommand, je peux voir que les paramètres de sortie sont réglés sur les valeurs correctes. Cependant, lorsque la commande est exécutée, elle utilise une valeur NULL pour parameter1 et 0 pour parameter2 (vérifiée à l'aide de SQL Profiler). .C# - Sortie SqlParameter utilise des valeurs différentes de celles données?
Une version simplifiée du code est la suivante:
foreach (KeyValuePair<string, object> parameter in outputParameters)
{
SqlParameter param = new SqlParameter(parameter.Key, parameter.Value);
param.Direction = ParameterDirection.Output;
command.Parameters.Add(param);
}
command.ExecuteNonQuery();
Je suis confus par deux choses différentes:
1) Pourquoi pas en utilisant les valeurs des paramètres? Je peux placer un point d'arrêt juste avant command.ExecuteNonQuery()
et voir que la liste command.Parameters a les paramètres de sortie définis correctement, cependant la trace du profileur SQL a différents paramètres lorsque la requête est exécutée.
2) Les deux paramètres sont des entiers et définis exactement de la même façon - Pourquoi un ensemble est-il à NULL alors que l'autre est à 0?
le proc s'il vous plaît publier –
stocké proc stockée est un peu long et ne devrait pas être le problème ... Il fonctionne très bien à partir de SQL Management Studio. Mon problème est que les valeurs transmises de la SQLCommand à SQLServer ne sont pas ce qu'elles disent qu'elles devraient être. – Rachel
Votre problème est que nous sommes incapables de voir si vos paramètres doivent être entrée, sortie ou InputOutput. Sans voir ce que vous essayez de faire avec eux, personne ne peut fournir la bonne réponse. Ne vous inquiétez pas de rendre la question très grande. J'ai la bande passante pour le gérer. –