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 :

problème pour numéro automatique


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Par défaut problème pour numéro automatique
    Bonjour à tous,
    J'ai un problème avec un numéro automatique, j'ai fait un dataset, et lorsque j'ai effacé par exemple les numéros 1, 2, 3 et qu'il ny a plus rien dans la base, je relance le programme, et je clique sur ajouter, et là j'ai de nouveau 1, 2, 3 dans le formulaire et dans la base, j'ai 4, 5, 6. Comment faire pour régler ce problème.
    Voici le code du bouton ajout :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    private void bt_ajout_serv_Click(object sender, EventArgs e)
            {
                this.BindingContext[dbDs, dbDs.tp1_service.TableName].AddNew();
                fillData();
            }
     
    private void fillData()
            {
                string total = (this.BindingContext[dbDs, "tp1_service.serviceemploye"].Count).ToString();
                string num = ((this.BindingContext[dbDs, "tp1_service.serviceemploye"].Position) + 1).ToString();
                tb_posCpt_emp.Text = num + "/" + total;
     
                total = (this.BindingContext[dbDs, dbDs.tp1_service.TableName].Count).ToString();
                num = ((this.BindingContext[dbDs, dbDs.tp1_service.TableName].Position) + 1).ToString();
                tb_posCpt_serv.Text = num + "/" + total;
     
                try
                {
                    activeService = this.BindingContext[dbDs, dbDs.tp1_employe.TableName].Current as DataRowView;
                    rowView = this.BindingContext[dbDs, "tp1_service.serviceemploye"].Current as DataRowView;
                }
                catch {}
                if (rowView != null)
                {
                    if ((bool)rowView.Row["sexe"] == true)
                        this.rb_masculin.Checked = true;
                    else
                        this.rb_feminin.Checked = true;
                }
                else
                {
                    this.cb_service.SelectedValue = false;
                }
            }
    Merci à vous

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Par défaut
    Je pense que je pourrai rafraichir le dataset juste pour la valeur du textbox mais comment faire car j'ai essayé avec rafraichir le dataset lorsque je fais un sqldataadapter mais cela me met un message d'erreur de double connexion.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    j'ai rien compris... essaie d'être plus clair sur la description du problème !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Par défaut
    J'ai une table dont l'identifiant est automatique, dans mon programme, j'utilise un dataset, et le problème, si j'ai des données et que je les supprime toutes, et quand je relance le programme, et je fais un ajout, j'ai le numéro 1 au lieu du numéro 12 par exemple, et j'enregistre, lorsque je relance le programme il a bien mis le numéro 12 et cela fonctionne bien après, j'aimerai qu'il me mette le bon numéro lorsque toutes les données ont été supprimées et que je lance le programme. J'ai essayé de recharger le dataset en cochant actualiser le dataset dans le sqldataadapter mais j'ai un message d'erreur qui me dit que le datareader associé à cette commande est déjà ouvert et qu'il doit d'abord être fermé.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Je suis toujours pas sûr d'avoir bien compris...
    Tu veux dire que quand tu fais une insertion dans la base, le numéro généré en base est correct, mais dans le dataset ça démarre toujours à 1 ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Par défaut
    Oui, c'est cela, si tous les enregistrement sont supprimés avant de relancer le programme. Par contre s'il y a des enregistrement, les numéros sont bons.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2009
    Messages : 13
    Par défaut
    Bonjour,

    Les tables avec un auto-incrément doivent être initialisées après chaque suppression, elles gardent toujours le dernier id (dans ton cas : 3) donc les nouveaux iDs seront (3+1, 3+2, ...)

    La solution : après chaque suppression (ou avant chaque ajout) tu dois exécuter la commande (Transact-SQL) suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dbcc checkident('VotreTable', reseed, 0)
    0 : Pour mettre l'auto-incrément à 0 (La nouvelle ligne aura l'id 1)
    N : Pour mettre l'auto-incrément à N (La nouvelle ligne aura l'id N+1)

    Bon développement.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Par défaut
    Bonjour,
    Merci j'ai essayé dans la base de données

    Après avoir utilisé cette commande : dbcc checkident('VotreTable', reseed, 0) dans la base de données ce qui m’a mis de remettre le compteur à 0.
    Je pense plutôt que le problème vient de l’application, voici ci-joint un document qui explique mieux le problème
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2007] Problème pour formule automatique
    Par kedrik dans le forum Excel
    Réponses: 3
    Dernier message: 03/03/2010, 23h01
  2. Problème pour remplir automatiquement une table
    Par Atemi76 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 30/07/2007, 16h31
  3. Problème pour éxécuter des jobs automatiquement
    Par Flipmode dans le forum Alimentation
    Réponses: 2
    Dernier message: 26/04/2007, 10h20
  4. Problème pour ajouter un texte automatique dans un zone de saisie de texte
    Par koKoTis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 21/08/2006, 16h03
  5. [débutant] Problème pour générer un login automatiquement
    Par zamoto dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/05/2006, 20h12

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