none
Appel d'une procédure stockée RRS feed

  • Question

  • Bonjour tout le monde,

    Je suis désolé de me pointer avec une question aussi bateau, mais je bute sur l'appel d'une procédure stockée dans une page ASP.Net.

    ça se passe dans un FormView, pour la SelectCommand j'ai utilisé une fonction utilisateur de type table (table valued function) et ça s'est bien passé, ça avait ceci de pratique que ça me permettait en deux mots de récupérer les contenus d'un enregistrement dans une table et de deux enregistrements dans une autre. Pour la UpdateCommand je recours à une procédure stockée que j'ai pu tester depuis SSMS, mais dans le FormView je n'ai pas trouvé la bonne syntaxe.

    Je me serais attendu à devoir mettre UpdateCommandType="StoredProcedure", mais si je mets ça ... la procédure stockée n'existe carrément pas, alors je m'abstiens.

    Pour la syntaxe d'appel j'en suis à ceci :

    UpdateCommand="dbo.UpdPlat id, culture, txtNom, cmtNom, txtDesc, cmtDesc, FR, EN, FRdesc, ENdesc, idCategorie, maxiCuisson, gestCusson, image"

    et on me dit qu'il y a une erreur de conversion de données du type nvarchar vers int, mais sans pour autant me faire le privilège de me dire quel champ est concerné. Il y a deux champs entiers dans la requête.

    Avant j'ai essayé avec des parenthèses autour des paramètres, avec ou sans arrobases devant id et culture (les paramètres clefs).

    Un coup on me dit erreur de syntaxe autour de @id, le coup d'après rien de plus convaincant comme résultat.

    J'imagine qu'il suffit de savoir ?

    J'ai fait le passage de paramètres par code, mais peine perdue : l'exception se produit sur l'instruction Update ensuite.

    L'intellisense de SSMS me suggère qu'appeler image un champ texte n'est pas ce que j'ai fait de plus fin dans ma carrière, mais je suppose que c'est un autre problème.


    • Modifié Gloops samedi 12 juillet 2014 14:04
    samedi 12 juillet 2014 13:44

Réponses

  • Ah, on dirait qu'en continuant de tâtonner j'ai trouvé.

    Il faut bien mettre UpdateCommandType="StoredProcedure", mais dans le UpdateCommand, juste le nom de la procédure (avec son préfixe), pas les paramètres.

    Au passage je remarque quelque chose, j'étais tellement pressé de faire un test que j'ai passé une chaîne vide pour un nombre, ça pouvait ne pas être évident comme résultat.

    • Marqué comme réponse Gloops samedi 12 juillet 2014 14:08
    samedi 12 juillet 2014 14:07