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 :

Visual Studio + MySQL + AutoIncrement [Débutant]


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut Visual Studio + MySQL + AutoIncrement
    Bonjour,
    Je suis novice et je fais ma premiere appli windows.
    J' ai cree une windows form pour inserer les donnees.
    Mais lorsque je clique sur nouveau, j'ai dans id -1. Id etant autoincrementer.
    Par contre si je le vire de mon windows form... Je peux inserer mes donnees, creer et modifier.
    Donc comment puis je faire pour que lorsque je clique sur nouveau id m'affiche la suivante valeur correctement et non -1 ?
    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par superthx Voir le message
    Bonjour,
    Je suis novice et je fais ma premiere appli windows.
    J' ai cree une windows form pour inserer les donnees.
    Mais lorsque je clique sur nouveau, j'ai dans id -1. Id etant autoincrementer.
    Par contre si je le vire de mon windows form... Je peux inserer mes donnees, creer et modifier.
    Donc comment puis je faire pour que lorsque je clique sur nouveau id m'affiche la suivante valeur correctement et non -1 ?
    Merci
    Bon j'ai essayer un truc.............
    J'ai fais le code suivant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MAX(id) + 1 AS Expr1 FROM produccion
    Il m'affiche bien ce que je veux mais dans le windows form j'ai encore le -1.
    Je voudrais savoir quel serai le bon code qui fasse que si j'ai id = NULL me mette
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MAX(id) + 1 AS Expr1 FROM produccion
    Quelqu'un ?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 262
    Points : 230
    Points
    230
    Par défaut
    Salut,

    Je voudrais savoir quel serai le bon code qui fasse que si j'ai id = NULL me mette
    Sous SqlServeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT isnull(MAX(ID), 0) + 1 FROM produccion
    Sous MySql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COALESCE(MAX(ID), 0) + 1 FROM produccion
    Mais je doute que ton problème vienne de là.
    Tox

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par toxycyty Voir le message
    Salut,

    Sous MySql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COALESCE(MAX(ID), 0) + 1 FROM produccion
    Mais je doute que ton problème vienne de là.
    MErci d'avoir repondu............

    Mais mon probleme persiste............
    La requete m'affiche bien le prochain numero id......
    Par contre dans le windows form j'ai toujours -1 qui apparait.
    Je crois que je vais abandonner l'idee d'afficher l'id dans le windows form.

  5. #5
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Si on utilise un DataAdapter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    adapter.InsertCommand = "INSERT " + ... ; // commande INSERT (sans column autoincrément) 
    adapter.InsertCommand += SELECT `"+AutoIncrementColumnName+"` FROM `"+TableName+"` WHERE `"+AutoIncrementColumnName+"` = LAST_INSERT_ID() ;
    adapter.InsertCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord ;
    adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey ;
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Si on utilise un DataAdapter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    adapter.InsertCommand = "INSERT " + ... ; // commande INSERT (sans column autoincrément) 
    adapter.InsertCommand += SELECT `"+AutoIncrementColumnName+"` FROM `"+TableName+"` WHERE `"+AutoIncrementColumnName+"` = LAST_INSERT_ID() ;
    adapter.InsertCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord ;
    adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey ;
    AU ben desole........
    Mais pour un debutant comme moi je sais meme pas ou mettre ce que tu me dis laà.

  7. #7
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Tu peux utiliser l’événement RowEnter pour ça, quand je crée une nouvelle ligne la valeur de l'id est null, tu as juste à l'affecter toi même:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            private void personneDataGridView_RowEnter(object sender, DataGridViewCellEventArgs e)
            {
                DataGridViewCell cellId = personneDataGridView.Rows[e.RowIndex].Cells["Id"];
                if (cellId != null && cellId.Value == null && personnes != null)
                {
                    cellId.Value = Personnes.Max(p => p.Id) + 1;
                }
            }
    toi au lieu de faire un Personnes.Max tu appelles une fonction qui te retourne le prochain ID.

  8. #8
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par superthx Voir le message
    La requete m'affiche bien le prochain numero id......
    Par contre dans le windows form j'ai toujours -1 qui apparait.
    Je crois que je vais abandonner l'idee d'afficher l'id dans le windows form.
    Effectivement, si afficher l'Id ne te sert à rien, il serait préférable de ne pas l'afficher dans le winform et laisser le SGBD gérer l'incrémentation de l'Id.
    N'oubliez pas le tag et

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par callo Voir le message
    Effectivement, si afficher l'Id ne te sert à rien, il serait préférable de ne pas l'afficher dans le winform et laisser le SGBD gérer l'incrémentation de l'Id.
    Merci pour tout...

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/02/2009, 01h44
  2. Réponses: 0
    Dernier message: 20/03/2008, 11h09
  3. Réponses: 6
    Dernier message: 26/09/2007, 07h55
  4. Réponses: 1
    Dernier message: 19/07/2007, 21h09
  5. MySQL & Visual studio
    Par MnMall dans le forum Accès aux données
    Réponses: 1
    Dernier message: 08/04/2007, 22h17

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