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

C# Discussion :

Ado.net récupérer valeur insérée automatiquement


Sujet :

C#

  1. #1
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut Ado.net récupérer valeur insérée automatiquement
    Bonjour,

    J'utilise ce bout de code pour insérer des données dans ma base de données (postgre) :
    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
     
        public void executeSql()
        {
            try
            {
                _connection = new NpgsqlConnection(_connectionString);
                _connection.Open();
                _command = new NpgsqlCommand(_sql, _connection);
                _command.ExecuteNonQuery();
                _connection.Close();
            }
            catch (Exception e)
            {
                throw e;
            }
        }
    J'ai dans une table une colonne serial (qui s'inscrémente automatiquement). Si j'envois cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "insert into maTable(numAuto, valeurA) values (default,'" + valeur.toString() + "')";
    L'enregistrement est bien créé mais je ne sais pas quelle valeur a pris le numAuto.

    Il me faudrait un conseil pour que je puisse inscrire l'enregistrement puis récupérer le numéro auto que la base a généré. Si quelqu'un a une idée, je le remercie par avance.
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  2. #2
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Regarde si tu trouve ta réponse ici http://dgriessinger.developpez.com/p...sql/sequences/
    Mehdi Feki : Modérateur .Net

  3. #3
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    j'avais déjà regardé cette article mais je n'y ai pas trouvé de réponse. Et pour le moment, je n'ai aucune piste...

    Sinon, il faudrait que je mette une date dans la table au moment de l'insert et que mon programme récupère le dernier enregistrement de l'utilisateur qui a fait l"insert. Mais ca ressemble plutot à de la bidouille
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  4. #4
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Si j'ai bien compris il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT currval('nom_de_la_sequence')
    Mehdi Feki : Modérateur .Net

  5. #5
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    SELECT currval('nom_de_la_sequence')
    ca fonctionne correctement avec un seul utilisateur, lorsque je lance 2 requetes simultanée, ca ne fonctionne pas. Je me suis arrangé autrement. Je stocke une date + le numero utilisateur dans la base et lors de l'affichage, je récupère l'enregistrement avec le bon code utilisateur et la date la plus grande.
    Merci pour les réponses
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

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

Discussions similaires

  1. [XL-2010] Récupérer valeur filtre automatique vba
    Par saigon dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 25/03/2020, 20h07
  2. [ADO.NET] Récupérer le résultat d'une requête dans une variable
    Par developppez dans le forum Accès aux données
    Réponses: 2
    Dernier message: 14/03/2009, 21h34
  3. [ADO.NET] récupérer la valeur de la clé d'une ligne insérée
    Par colombero dans le forum Accès aux données
    Réponses: 2
    Dernier message: 07/12/2006, 23h56
  4. [C#] [ADO.NET] Récupérer une contrainte de vérification
    Par crjo dans le forum Accès aux données
    Réponses: 3
    Dernier message: 13/04/2005, 17h30
  5. [VB.NET] [ADO.NET] Récupérer id après insertion
    Par nashouille dans le forum Accès aux données
    Réponses: 9
    Dernier message: 09/01/2005, 15h54

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