none
Procédure stockée fait des insert dans SQL Server, mais rien ne se fait quand il est appelé dans C#

    Question

  • Bonjour à tous

    je développe quelques procédures stockées por notre module de scoring, et j'ai une erreur avec l'une d'entre elles que je n'arrive pas à corriger.
    Cette procédure insère des valeurs dans la DB lorsque je l'exécute sur le serveur, mais pas lorsqu'elle est appelée dans C#.

    Voici quelques lignes de codes utilisés :

    Dans SQL Server, voici un exemple des paramètres :

    @EmployerName as varchar(100) OUTPUT, 
    @EmployerName_statuts as varchar(1) OUTPUT

    Dans C# :
    string strRowAffect;
    SqlConnection MFIconnexion = new SqlConnection();
    MFIconnexion.ConnectionString = "Data Source = Localhost; initial catalog = MFI_10OCT2015; Integrated Security=SSPI";
    SqlCommand MFIcommande6 = new SqlCommand("SP_CUSTOMER_INSERT_OVERALL", MFIconnexion);
    MFIcommande6.CommandType = CommandType.StoredProcedure;
    MFIconnexion.Open();

    SqlParameter EmployerName = MFIcommande6.Parameters.Add("@EmployerName", SqlDbType.VarChar, 100);
    EmployerName.Direction = ParameterDirection.InputOuput;
    SqlParameter EmployerName_statuts = MFIcommande6.Parameters.Add("@EmployerName_statuts", SqlDbType.VarChar, 1);
    EmployerName_statuts.Direction = ParameterDirection.InputOutput;

    strRowAffect = MFIcommande6.ExecuteNonQuery().ToString();
    Console.WriteLine("strRowAffect: " + strRowAffect);
    MFIconnexion.Close();

    J'ai essayé d'utiliser aussi "AddValue", mais sans plus de succès :
    MFIcommande6.Parameters.AddWithValue("@EmployerName", EmployerName);
    MFIcommande6.Parameters.AddWithValue("@EmployerName_statuts", EmployerName_statuts);

    Avez-vous une idée de la manière de regler ceci ? 
    Un grand merci d'avance !

    vendredi 1 juillet 2016 09:56

Réponses

  • Bonjour Teodora,

    merci bien pour votre intervention. 

    En fait, j'ai trouvé la solution : il fallait définir la direction des paramètres en "Output" et non "InputOutput". 

    Comment marquer le sujet comme solutionné ? Merci.

    • Marqué comme réponse BuissonArdent mardi 12 juillet 2016 08:07
    mardi 5 juillet 2016 09:06

Toutes les réponses

  • Bonjour BuissonArdent,

    Pouvez-vous partager avec nous la valeur de la variable strRowAffect, ainsi que le nombre des lignes concernées quand vous exécutez la procédure stockée?

    Je vous remercie par avance de votre retour.

    Cordialement,
    Teodora


    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    vendredi 1 juillet 2016 12:06
    Modérateur
  • Bonjour Teodora,

    merci bien pour votre intervention. 

    En fait, j'ai trouvé la solution : il fallait définir la direction des paramètres en "Output" et non "InputOutput". 

    Comment marquer le sujet comme solutionné ? Merci.

    • Marqué comme réponse BuissonArdent mardi 12 juillet 2016 08:07
    mardi 5 juillet 2016 09:06
  • Vous devez marquer comme réponse le commentaire qui vous a aidé : ça peut être l'un des votre ou celui de Teodora.

    Cordialement,

    mardi 5 juillet 2016 09:16