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 :

Générer un numero avant d'insérer des données dans la base


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Points : 30
    Points
    30
    Par défaut Générer un numero avant d'insérer des données dans la base
    Bonjour !

    Je crée un mini projet en asp.net,

    J'ai une table demande (id,numero, date,pièce)
    je veux générer un numéro de demande avant d’insérer dans la base et ce numéro générer serra une concaténation du dernier numéro et un préfixe (DE-20).

    Exemple:
    id numero date pièce

    19 DE-19 12/12/2017 blabla
    20 DE-20 27/12/2017 valable

    NB: pour générer le numéro DE-20, il faut récupérer le dernier numéro dans la base et l’incrémenter de +1 et concaténer avec DE-.


    Merci de votre aide

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    Pourquoi ne pas plutôt créer un champs calculé dans ta table SQL...

  3. #3
    Membre actif
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2016
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 154
    Points : 268
    Points
    268
    Par défaut
    Bonjour;
    NB: pour générer le numéro DE-20, il faut récupérer le dernier numéro dans la base et l’incrémenter de +1 et concaténer avec DE-.
    t'as déjà la solution. je ne comprends pas ce qui te manque

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    Citation Envoyé par Prisson Voir le message
    Bonjour;

    t'as déjà la solution. je ne comprends pas ce qui te manque
    Probablement qu'il demande ca car à l'insert de sa table demande il ne connait pas encore l'id...

  5. #5
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Citation Envoyé par beaf05 Voir le message
    NB: pour générer le numéro DE-20, il faut récupérer le dernier numéro dans la base et l’incrémenter de +1 et concaténer avec DE-.
    C'est exactement le chose qu'il ne faut pas tenter de reproduire tel quel dans une base de données, au risque d'avoir des comportements erronées dans de rares cas (et très difficile à déboguer) en cas d'accès concurrentiel. Exemple de comportement possible : avoir deux produits ayant le même ID !

    Pour ma part, je vois deux possibilités :
    • utiliser une colonne calculée, comme le suggère Dokho1000. Personnellement, c'est la méthode que je choisirais ;
    • utiliser un trigger AFTER INSERT qui viendrait renseigner la valeur après l'insertion de l'enregistrement. Cela peut nécessiter une légère modification du schéma de la BD (en autorisant la valeur NULL pour la colonne en question).


    Ma préférence va donc à la première solution. La seconde ne serait à utiliser que dans le cas où le numéro et l'ID peuvent diverger pour une raison ou une autre.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

Discussions similaires

  1. [Débutant] Insérer des données dans une base de donnée
    Par crisikos dans le forum C#
    Réponses: 7
    Dernier message: 18/09/2017, 11h23
  2. Insérer des données dans une base de données
    Par Rohan21 dans le forum Android
    Réponses: 3
    Dernier message: 26/11/2014, 15h12
  3. Réponses: 2
    Dernier message: 31/07/2012, 05h54
  4. Réponses: 3
    Dernier message: 14/07/2009, 13h45
  5. [ODBC] insérer des données dans une base access
    Par makfly2301 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 16/06/2008, 14h19

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