IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[ASP.NET] récuperer la valeur de @@IDENTITY d'une proc stock


Sujet :

ASP.NET

  1. #1
    Membre actif
    Homme Profil pro
    DBA - Développeur BI
    Inscrit en
    Avril 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA - Développeur BI
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2003
    Messages : 442
    Points : 283
    Points
    283
    Par défaut [ASP.NET] récuperer la valeur de @@IDENTITY d'une proc stock
    Bonjour

    Je suis sur un problème qui est sans doute simple mais je n'arrive pas à trouver la réponse, malgré mes recherches sur le net.

    Voilà le contexte : j'ai une page asp qui effectue une insertion dans une bdd en faisant appel à une proc stock. Cette proc me retourne l'ID de l'enregistrement qui vient d'être ajouté.

    Voici la proc stock
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    CREATE PROCEDURE [dbo].[SaisieIncident]
    @ID_TypeFiche int
    ,@ID_Motif int
    ,@ID_Categorie int
    ,@ID_Theme int
    ,@ID_SousTheme int
    ,@ID_Contact int
    ,@Description nvarchar(225)
    AS
    INSERT INTO dbo.Incidents
    (ID_TypeFiche, ID_Motif, ID_Categorie, ID_Theme, ID_SousTheme, ID_Contact, ID_Etat, Description)
    VALUES
    (@ID_TypeFiche, @ID_Motif, @ID_Categorie, @ID_Theme, @ID_SousTheme, @ID_Contact, 1, @Description)
    RETURN @@IDENTITY
    et voici le code de la page asp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <asp:SqlDataSource ID="dsIncidents" runat="server"  
            ConnectionString="<%$ ConnectionStrings:csGestionIncidents %>"
            InsertCommand="SaisieIncident"   
            InsertCommandType="StoredProcedure"  
            SelectCommand="SELECT Incidents.ID_Incident, Incidents.ID_TypeFiche, Incidents.ID_Motif, Incidents.ID_Categorie,  Incidents.ID_Theme, Incidents.ID_SousTheme, 
    Incidents.ID_Contact, Incidents.Description
    FROM Sous_Themes INNER JOIN
    Theme_SousTheme ON Sous_Themes.ID_SousTheme = Theme_SousTheme.ID_SousTheme RIGHT OUTER JOIN
    Incidents INNER JOIN
    Motif_Appel ON Incidents.ID_Motif = Motif_Appel.ID_Appel INNER JOIN
    Etats ON Incidents.ID_Etat = Etats.ID_Etat LEFT OUTER JOIN
    Contacts ON Incidents.ID_Contact = Contacts.ID_Contact LEFT OUTER JOIN
    Categories LEFT OUTER JOIN
    CatTheme ON Categories.ID_Categorie = CatTheme.ID_Cat ON Incidents.ID_Categorie = Categories.ID_Categorie AND 
    Incidents.ID_Theme = CatTheme.ID ON Theme_SousTheme.ID_ThemeSousTheme = Incidents.ID_SousTheme LEFT OUTER JOIN
    Themes ON CatTheme.ID_Theme = Themes.ID_Theme">
            <InsertParameters>
                <asp:Parameter Name="ID_TypeFiche" Type="int32" />
                <asp:Parameter Name="ID_Motif" Type="Int32" />
                <asp:Parameter Name="ID_Categorie" Type="Int32" />
                <asp:Parameter Name="ID_Theme" Type="Int32" />
                <asp:Parameter Name="ID_SousTheme" Type="Int32" />
                <asp:Parameter Name="ID_Contact" Type="Int32" />
                <asp:Parameter Name="Description" Type="String" />
            </InsertParameters>
        </asp:SqlDataSource>
    Bon jusque la rien d'extraordinaire.

    Ce que je cherche c'est comment récupérer la valeur de ma proc stock en C#.

  2. #2
    Membre habitué
    Inscrit en
    Décembre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2003
    Messages : 108
    Points : 129
    Points
    129
    Par défaut
    il faut que tu rajoute l'évenement oninserted dans ton data source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oninserted="dsIncidents_Inserted"
    et dans ton code behind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     protected void dsIncidents_Inserted(object sender, SqlDataSourceStatusEventArgs e)
        {
            int value = (int)e.Command.Parameters["@returnValue"].Value;
        }
    et à la fin de ta procédure stockée tu ajoute
    SELECT @returnValue= SCOPE_IDENTITY()

  3. #3
    Membre actif
    Homme Profil pro
    DBA - Développeur BI
    Inscrit en
    Avril 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA - Développeur BI
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2003
    Messages : 442
    Points : 283
    Points
    283
    Par défaut
    Salut,
    Merci pour ta réponse mastervanou. Juste une autre question concernant ma proc stock.
    Est-ce que je laisse le RETURN @@IDENTITY quand même?

    Désolé si cette question te paraît simpliste ?

  4. #4
    Membre actif
    Homme Profil pro
    DBA - Développeur BI
    Inscrit en
    Avril 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA - Développeur BI
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2003
    Messages : 442
    Points : 283
    Points
    283
    Par défaut
    Re-bonjour

    Alors j'ai fait ce que tu m'as dit mastervanou, mais je rencontre un souci. J'ai le mesage
    Un SqlParameter avec ParameterName '@returnValue' n'est pas contenu dans ce SqlParameterCollection
    Comment déclarer cette variable

  5. #5
    Membre habitué
    Inscrit en
    Décembre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2003
    Messages : 108
    Points : 129
    Points
    129
    Par défaut
    depuis la MSDN:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     private void dsIncidents_Inserting(Object sender, SqlDataSourceCommandEventArgs e) {
     
        SqlParameter insertedKey = new SqlParameter("@PK_New", SqlDbType.Int);
        insertedKey.Direction    = ParameterDirection.Output;        
        e.Command.Parameters.Add(insertedKey);
     }
    remplace @PK_New par @returnValue
    il faut également modifier le code asp en ajoutant
    OnInserting="dsIncidents_Inserting"

  6. #6
    Membre actif
    Homme Profil pro
    DBA - Développeur BI
    Inscrit en
    Avril 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA - Développeur BI
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2003
    Messages : 442
    Points : 283
    Points
    283
    Par défaut
    Merci beaucoup,

    aurais tu le lien de cette exemple stp. Histoire que j'y jette un oeil.

  7. #7
    Membre actif
    Homme Profil pro
    DBA - Développeur BI
    Inscrit en
    Avril 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA - Développeur BI
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2003
    Messages : 442
    Points : 283
    Points
    283
    Par défaut
    Bonsoir,

    C'est génial j'ai enfin réussi. Merci pour ton aide mastervanou.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/03/2013, 12h00
  2. Réponses: 2
    Dernier message: 23/11/2009, 20h11
  3. [ASP.NET][C#]Récupération valeur dans une table
    Par johnny_hey dans le forum ASP.NET
    Réponses: 4
    Dernier message: 23/03/2007, 14h44
  4. [ASP.Net 2.0/Oracle] Pourquoi ai-je une erreur de connection ?
    Par lenoil dans le forum Accès aux données
    Réponses: 1
    Dernier message: 02/08/2006, 08h28
  5. [VB.NET]Récuperer des valeurs d'une autre page
    Par Dnx dans le forum ASP.NET
    Réponses: 8
    Dernier message: 12/05/2005, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo