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

Windows Forms Discussion :

C# récupérer l'id avec procédure stocké SQL Sserver 2000


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut C# récupérer l'id avec procédure stocké SQL Sserver 2000
    Bonjour,

    j'ai du mal a récupéré le dernier identifiant de ma requete, je récupere toujours le chiffre "4" dans ma variable "m_lastid "

    voilà mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int m_lastid = Convert.ToInt32(SQL_Famille.Insert());
    en faite le SQL_Famille.Insert() fait appelle à une procédure stocké donc le probleme viens peut etre de là ?

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Ben, il faudrait voir ta procédre stockée mais si à la fin, tu fait un

    RETURN SELECT @@IDENTITY

    ca devrait etre bon normalement

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RETURN SELECT @@IDENTITY
    çà me return le nombre d'insert qu'effectue ma procédure

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut


    Cett erequête te retourne, normalement, le dernier identifiant généra par une requête INSERT....

  5. #5
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    A mon avis tu dois faire un ExecuteNonQuery() dans la méthode SQL_Famille.Insert() et tu renvoies le retour de cet appel. C'est probablement pour celà que tu récupères le nombre de lignes affectées au lieu de ton identifiant.

    Ne faudrait-il pas utiliser un ExecuteScalar() pour pouvoir récupérer un retour de ce genre (procédure stockée) ?

    Evidemment ce n'est qu'une supposition, pour le ExecuteNonQuery, basée sur ce qui a été dit
    Pas de questions techniques par MP

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Points : 2 202
    Points
    2 202
    Par défaut
    Euh non....Le seul moyen de le connaitre c'est effectivement de créer un paramétre de sortie sur la proc stock...

    Même executescalar implique un param out par agrégat, unitaire.

    A moins d'être bigrement intelligent, je vois pas en quoi le executescalar déciderait tout seul de renvoyer l'identity ....Et pourquoi pas un GUID ????

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/04/2009, 16h13
  2. Problème LIKE Procédure stocké SQL Server 2000
    Par Pilhole dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 18/02/2008, 09h24
  3. Réponses: 3
    Dernier message: 02/02/2007, 14h30
  4. Procédures stockées SQL Server compatibles avec MySQL ?
    Par Nen'S dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 24/01/2006, 19h18

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