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

VB.NET Discussion :

incrémentation d'une clé primaire


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut incrémentation d'une clé primaire
    Bonjour et bon début de semaine,
    je veux incrémenter un champs dans mon table qui 'est varchar et voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Try
                cmd = New SqlCommand("select max(id) as num from test", con)
                con.Open()
                dr = cmd.ExecuteReader
                While dr.Read
                    Me.TextBox1.Text = Year(Date.Now() & "OP" & (dr("num") + 1))
                End While
                dr.Close()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
            con.Close()
    le résultat comme ça:2011OP00001,2011OP00002..........)
    merci d'avance

  2. #2
    Membre très actif
    Avatar de alex61
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2010
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 378
    Par défaut
    question courante

    je l'ai moi même poser il y a quelque semaine ...

    et ....... la réponse est dans la voila

    ps : c'est bizarre ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Year(Date.Now() & "OP" & (dr("num") + 1))
    cordialement

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    les bases de données peuvent gérer un auto incrément toutes seules, et c'est conseillé de laisser la base de données le faire

    une clé primaire en varchar qui plus est représentative c'est vraiment déconseillé (je ne suis pas sur que c'est ton cas ...)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut
    merci sur votre réponses
    ou je peux trouve la solution Mr.alex61 svp
    merci

  5. #5
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut
    re bonjour,
    pour quoi le code est bizarre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Year(Date.Now() & "OP" & (dr("num") + 1))
    je veux l'année+OP+un numéro ou est le problème dans ce code?

  6. #6
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Citation Envoyé par najoua01 Voir le message
    merci sur votre réponses
    ou je peux trouve la solution Mr.alex61 svp
    merci
    T'as pris la peine de chercher dans la FAQ ?

    Et ton code est bizarre dans la mesure où tu as choisi de définir un varchar comme clé primaire.

  7. #7
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut
    mais pour quoi on peu pas déclarer un varchar clé primaire c'est normale ou est le problème???
    merci

  8. #8
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut
    merci Jean-Michel Ormes j'ai compri
    mais svp comment je peux incrémenter un champs de varchar comme cela (2011OP1,....)par année (2011)avec un caractère "OP" plus uhn nombre
    merci d'avance

  9. #9
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    en C# :
     
    String[] elements = String.Split(new String[]{"OP"});//Tableau avec 2011 et 0001 obtenu
     
    if(elements.Count != 2)//erreur
      return;
     
     
    String nouvelleID = elements[0]+"OP"+(int.Parse(elements[1]) + 1).ToString();//eventuellement try/Catch, histoire de renforcer la sécurité
    //Pour le ToString, peut-être faire une mise en forme pour avoir le nombre sur 4 chiffres, sinon les 0 de devant sauteront...
    Voilà l'idée, à adapter en vb.net, pour ton cas.

  10. #10
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut
    merci bcp Arnard
    mais ça marche pas svp quelqu'un qui peu m'aider ??????
    merci d'avance

  11. #11
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    1. Poste ce que tu as écrit
    2. En quoi ça marche pas ? Non compilation ? Résultat prévu non obtenu ? As-tu testé en pas-à-pas ?

  12. #12
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut
    merci ,
    voici mon code:
    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
       Try
                Dim elements(0) As String = String.Split(New String() {"OP"})
                ''''''''''''//Tableau avec 2011 et 0001 obtenu
     
                If (elements(0).Count <> 2) Then
                    Return
                End If
     
     
                Dim nouvelleID As String = elements(0) + "OP" + (Int.Parse(elements(1)) + 1).ToString()
     
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
            con.Close()
    merci d'avance

Discussions similaires

  1. Réponses: 8
    Dernier message: 04/03/2014, 16h56
  2. Comment créer une clé primaire auto incrémentée?
    Par lolymeupy dans le forum PowerAMC
    Réponses: 10
    Dernier message: 26/11/2013, 16h50
  3. Réponses: 1
    Dernier message: 26/08/2009, 13h42
  4. Une clé primaire qui doit s'incrémenter automatiquement
    Par Msysteme dans le forum Débuter
    Réponses: 21
    Dernier message: 03/03/2009, 23h56
  5. auto incrémentation d'une clé primaire
    Par saraenim dans le forum Développement
    Réponses: 1
    Dernier message: 20/05/2008, 14h01

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