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 :

Comment trouver les doublons dans une datatable ? [Débutant]


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 67
    Points : 43
    Points
    43
    Par défaut Comment trouver les doublons dans une datatable ?
    Bonjour à tous .
    Voila je travail sur une interface qui contient une datagridview ,dont la source et un fichier excel qui contient 4 champs (CIN,Nom_complet,Date_debut,Date_fin) , mais ce fichier contient des doublons , alors ce que je veux c'est extraire les doublons par (CIN) et faire une comparaison sur le champ Date_debut , je vais supprimer l'ancienne date et garder la récente ?? , alors après une petite recherche sur internet j'ai trouvé ce 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
    16
              Hashtable hTable = new Hashtable();
                        ArrayList duplicateList = new ArrayList();
     
                        foreach (DataRow drow in dt_Creation.Rows)
                        {
                            if (hTable.Contains(drow["CIN"]))
                            {
                                duplicateList.Add(drow);
                            }
                            else
                                hTable.Add(drow["CIN"], string.Empty);
                        }
                        foreach (DataRow dRow in duplicateList)
                        {
                            //Supprimer la ligne !!
                        }
    mais ce code là retient le dernier doublon ? comment peux-je faire et merci beaucoup

  2. #2
    Invité
    Invité(e)
    Par défaut
    problème récurrent dans tous les langages de programmation.
    Je te met du code sans l'avoir testé, je ne programme pas en C#.NET mais en VB.NET, mais t'inquiètes, ces 2 langages se ressemblent énormément :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(int i=0;i<My_DGV.count;i++) //My_DGV : nom de ton datagridview
       for(int j=i+1;i<My_DGV.count;j++)
            if(My_DGV.Rows(i).Cells("CIN").ToString==My_DGV.Rows(j).Cells("CIN").ToString)
                {
                 // un doublon vient d'être trouvé
                 }

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 67
    Points : 43
    Points
    43
    Par défaut
    Bonjour "Romulus001" et merci pour ta réponse , j'ai essayé ton code ,mais il me sort cet erreur : L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.
    Nom du paramètre : index

    dans l'index "j" et merci beaucoup

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je viens de tester ce code, ça marche maintenant. Enjoy

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for (int i = 0; i < My_DGV.Rows.Count; i++) //My_DGV : nom de ton datagridview
                    for (int j = i + 1; j < My_DGV.Rows.Count; j++)
     
                        if (My_DGV.Rows[i].Cells["CIN"].Value == My_DGV.Rows[j].Cells["CIN"].Value)
                        {
                            string loc_texte = "Doublon trouvé en ligne " + Convert.ToString(i) + " et en " + Convert.ToString(j);
                            System.Windows.Forms.MessageBox.Show(loc_texte);
                        }

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 67
    Points : 43
    Points
    43
    Par défaut
    Merci beaucoup "Romulus001" probléme résolu

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

Discussions similaires

  1. Comment éviter les doublons dans une ComboBox
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 27/07/2017, 16h03
  2. Réponses: 4
    Dernier message: 12/03/2015, 11h46
  3. Réponses: 14
    Dernier message: 18/02/2014, 17h27
  4. [vbexcel]Comment supprimer les doublons dans une combobox?
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 24/11/2005, 11h12

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