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 trie datagridview


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut problème trie datagridview
    Bonjour,

    Je suis actuellement en BTS IRIS et je dois réaliser une application en c# qui permet d'afficher certaine valeur en fonction d'une extraction de fichier en csv , je doit trier ce fichier et l'envoyer dans une table tempo, puis l'intégrer dans ma BDD .
    j’intègre ce fichier dans un datagridview avant de le charger dans ma BDD.

    Seulement j'ai un soucis pour le trie dans mon datagridview.

    j'effectue ce code pour supprimer certaine colonne :

    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
    for (int i = 0; i < dataGridView1.Columns.Count; i++)
               {
     
                   if      ((dataGridView1.Rows[0].Cells[i].Value.ToString() != "Code FR")
                        && (dataGridView1.Rows[0].Cells[i].Value.ToString() != "Type matériel")
                        && (dataGridView1.Rows[0].Cells[i].Value.ToString() != "Modèle")
                        && (dataGridView1.Rows[0].Cells[i].Value.ToString() != "Site")
                        && (dataGridView1.Rows[0].Cells[i].Value.ToString() != "Matériels connectés")
                        && (dataGridView1.Rows[0].Cells[i].Value.ToString() != "Rack")
                        && (dataGridView1.Rows[0].Cells[i].Value.ToString() != "Unité deb.")
                        && (dataGridView1.Rows[0].Cells[i].Value.ToString() != "Unité fin")
                        && (dataGridView1.Rows[0].Cells[i].Value.ToString() != "Num. lame"))
                   {
                               dataGridView1.Columns.RemoveAt(i);
                   }
               }
    Mais il me supprime une colonne sur deux et non uniquement celle dont je n'ai pas besoin.

    Si quelqu'un avais une solution pour moi , ou du moins une petite aide pour que je puisse avancer.

    Merci !

  2. #2
    Membre confirmé Avatar de Julien698
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2013
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2013
    Messages : 237
    Points : 473
    Points
    473
    Par défaut
    Salut,

    Voici une solution, ce n'est certainement pas la plus facile, mais je suis sur qu'elle marche, l'idée est que à partir de ton gridview tu passes dans une DataTable :

    Voici un exemple :
    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
    36
    37
    38
    DataTable GetTable()
            {
                DataTable dt = new DataTable();            
                dt.Columns.Add("Label");
                dt.Columns.Add("CategoryId");
                dt.Columns.Add("ProgramId");
                dt.Columns.Add("Title");
                dt.Columns.Add("ShopName");
                dt.PrimaryKey = null;            
     
                foreach (GridViewRow ligne in GridViewShops2.Rows)
                {   
                    DataRow dr = dt.NewRow();
                    if (ligne.Cells[4].Text != null)
                    {
                        string hs = this.Server.HtmlDecode(ligne.Cells[4].Text);                 
                        dr["ShopName"] = hs;
                    }
                    if (ligne.Cells[3].Text != null)
                    {
                        string hs = this.Server.HtmlDecode(ligne.Cells[3].Text);                   
                        dr["Title"] = hs;
                    }
                    if (ligne.Cells[2].Text != null)
                    {
                        string hs = this.Server.HtmlDecode(ligne.Cells[2].Text);               
                        dr["ProgramId"] = hs;
                    }         
                        dr["CategoryId"] = ligne.Cells[1].Text; // tu peux faire comme ça pour chaque ligne, j'ai utilisé les if car j'avais des accents et ça ne marchait pas
     
                    if (ligne.Cells[0].Text != null)
                    {
                        string hs = this.Server.HtmlDecode(ligne.Cells[0].Text);                  
                        dr["Label"] = hs;
                    }           
                    dt.PrimaryKey = null;
                    dt.Rows.Add(dr);                
                }
    Une fois que tu as ta DataTable, tu peux faire ta recherche comme dans le GridView et supprimer la colonne qui ne te convient pas.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Salut,

    Merci pour la solution,

    cependant ce n'est pas exactement ce qu'il me faut, une fois mes colonnes créer dans mon datagridview , elles ne font que s'ajoute à mes colonnes déjà crées.

    Je ne veut pas les renommer, je veux juste supprimer celle ou la première ligne se nomment par exemple "Modèle".

  4. #4
    Membre confirmé Avatar de Julien698
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2013
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2013
    Messages : 237
    Points : 473
    Points
    473
    Par défaut
    Justement grâce à la DataTable tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DataTable t;
           t.Columns.Remove("columnName");
           t.Columns.RemoveAt(columnIndex);

Discussions similaires

  1. Problème initialisation DataGridView
    Par tssi555 dans le forum VB.NET
    Réponses: 9
    Dernier message: 24/09/2008, 11h27
  2. probléme dans datagridview
    Par saraenim dans le forum VB.NET
    Réponses: 1
    Dernier message: 26/03/2008, 10h29
  3. Problème remplissage datagridview
    Par callo dans le forum C#
    Réponses: 7
    Dernier message: 12/02/2008, 15h27
  4. Problème avec DataGridView
    Par andy38 dans le forum VB.NET
    Réponses: 10
    Dernier message: 24/01/2008, 02h14
  5. Problème avec DataGridView et Localizable
    Par blistex dans le forum ASP.NET
    Réponses: 3
    Dernier message: 10/07/2007, 16h28

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