J'appelle un proc SQL qui a 3 paramètres OUTPUT. Après l'appel au proc, l'un des params ne renvoie pas de valeur lorsque les deux autres le font. Le profileur montre que les trois valeurs sont renvoyées.Le paramètre de sortie n'est pas retourné depuis le processus stocké
Les params sont déclarés comme suit dans le proc ...
@UsrVariableID INT OUTPUT,
@OrganisationName NVARCHAR(256) OUTPUT,
@Visible bit OUTPUT
et le code qui appelle le proc est comme ça ...
cm.Parameters.AddWithValue("@OrganisationName", name);
cm.Parameters["@OrganisationName"].Direction = ParameterDirection.Output;
cm.Parameters.AddWithValue("@Visible", visible);
cm.Parameters["@Visible"].Direction = ParameterDirection.Output;
cm.ExecuteNonQuery();
name = cm.Parameters["@OrganisationName"].Value.ToString();
visible = bool.Parse(cm.Parameters["@Visible"].Value.ToString());
id = int.Parse(cm.Parameters["@UsrVariableID"].Value.ToString());
PARAM qui n'est @OrganisationName .
Je me demande si c'est parce que le paramètre est de type chaîne dans le code mais NVARCHAR dans le proc.
Vous avez des idées?
Quand vous dites qu'il échoue, jette-t-il une erreur sur la conversion de tostring() ou ne renvoie-t-il aucune donnée? Le sproc revient-il sans erreur lorsque vous l'exécutez dans SSMS? –
Peut-être que l'erreur est dans la procédure elle-même; Y a-t-il en fait un 'SELECT @OrganisationName = quelque chose 'ou' SET @OrganisationName = quelque chose' dans la procédure? – configurator