2010-08-26 4 views
0

J'essaie d'obtenir la sortie d'une procédure stockée dans une fonction mais avec mon code, je reçois toujours une erreur indiquant que le paramètre de sortie n'est pas spécifié.Pouvez-vous m'aider?erreur lors de l'obtention de la sortie d'une procédure stockée

le code est ici .....

public int UserAuthentication(String username, String password) 
{ 
    SqlConnection conn = new SqlConnection("Data Source=...\\..; Initial Catalog=CUSTOMER360;User ID=sa;password=******"); 
    SqlCommand command = new SqlCommand("sp_Campaign_UserAuthentication", conn); 
    command.CommandType = CommandType.StoredProcedure; 
    command.Parameters.Add(new SqlParameter("@login_id", SqlDbType.VarChar, 50, "loginid")); 
    command.Parameters.Add(new SqlParameter("@password", 
     SqlDbType.VarChar,50, 
     "password")); 
    SqlParameter ret = command.Parameters.Add(" @result", SqlDbType.Int); 
    ret.Direction = ParameterDirection.ReturnValue; 
    command.Parameters["@login_id"].Value = username; 
    command.Parameters["@password"].Value = password; 
    conn.Open(); 
    command.ExecuteNonQuery(); 
    conn.Close(); 
    return (int)ret.Value; 
} 
+1

Je suppose que le mot de passe utilisateur que vous avez envoyé est une chaîne fictif? :-) –

Répondre

0

Je pense que le paramètre ReturnValue doit être le premier dans la liste des paramètres commande(édition).

De même, essayez d'interroger la valeur du paramètre de retour avant de fermer la connexion.

Assurez-vous que vos appels procédure stockée

RETURN (@SomeReturnValue) 

Enfin, essayez de supprimer l'espace de premier plan dans votre nom de paramètre « @result », juste au cas où.

+0

@result est la valeur de retour et il est dans la liste des paramètres.Et j'ai aussi essayé d'obtenir la valeur de retour avant de fermer la connexion mais le résultat est le même ......... – Alivia

+0

Votre code a le paramètre en tant que troisième paramètre ajouté à la liste de paramètres de la commande. Déplacez-le comme le premier. –

+0

Pouvez-vous également publier l'en-tête de la procédure stockée? Juste le nom du proc et la liste des paramètres fera l'affaire. Je me demande si vous avez mélangé les types de paramètres Output et ReturnValue. –

Questions connexes