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 :

Inverser ligne et colonne d'un datagridview


Sujet :

Windows Forms

  1. #1
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut Inverser ligne et colonne d'un datagridview
    Bonjour,

    Je remplis une Table avec une procédure stockée sql et puis je m'en sers pour remplir mon datagridview. Mais je souhaiterais inverser les colonnes et les lignes.

    Je m'explique:

    Ma Table:

    Nom de colonne1 | Nom de colonne2

    Valeur1Col1 | Valeur1Col2
    Valeur2Col1 | Valeur2Col2
    Valeur3Col1 | Valeur3Col2

    Et je voudrais dans mon datagridview:

    Valeur1Col1 | Valeur2Col1 | Valeur3Col1
    Valeur1Col2 | Valeur2Col2 | Valeur3Col2

    Je n'ai pas très envie de faire ça avec des boucles.

    Sinon, y a t-il un moyen de faire ça dans sql server?

    Merci d'avance

  2. #2
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Moi je dis, une bonne boucle, y'a rien de mieux
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  3. #3
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut
    Et bien allons-y pour une boucle.

    Mais je trouve ça plus compliqué que ce que j'imaginais.

    Je me sers de Merge je me retrouve avec les bons noms de colonnes mais il y a des problèmes sur les lignes:

    Col1 | Col2 | Col3 | Col4
    Val1
    ...... | Val2 |
    ...... | ...... | Val3 |
    ...... | ...... | ...... | Val4


    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
     
    public void RemplTableOrdrePourRefInt(string RefInt)
            {
                TableOrdre.Clear();
                DataTable TableOrdreBis = new DataTable();
                SqlDataAdapter m_daDataAdapter;
                SqlConnection ConsultConnection = new SqlConnection(oSurveillant.strConnexion);
                m_daDataAdapter = new SqlDataAdapter("OrdreJourPourPiece '" + RefInt + "','" + oSurveillant.Environnement.ToString() + "';", ConsultConnection);
                m_daDataAdapter.Fill(TableOrdreBis);
                ConsultConnection.Close();
                //TableOrdre = TableOrdreBis.Clone();
                foreach (DataRow R in TableOrdreBis.Rows)
                {
                    DataTable TableOrdre3 = new DataTable();
                    TableOrdre3.Columns.Add(R[0].ToString());
                    TableOrdre3.Rows.Add(R[1].ToString());
                    TableOrdre.Merge(TableOrdre3);
                    TableOrdre3.Clear();
                }
                SignalerOrdre();
            }
    Si vous avez plus simple...

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 337
    Points : 456
    Points
    456
    Par défaut
    Ben tu créés une nouvelle datatable pui tu créés autant de colonne qu'il y a de ligne dans ta première table puis pour chaque colonne de ta première table tu crées une ligne dans la nouvelle

    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
     
    DataTable resultat = new DataTable();
    foreach(DataRow in myTable.Rows)
    {
         resultat.Columns.add("ColumnsName",typeoff(???));
    }
     
    int rowIndex = 0;
    foreach(DataColumns in myTable.Rows)
    {
         DataRow myRow = resultat.NewRow();
         int columnIndex = 0; 
         foreach(DataRow myTableRow in myTable.Rows)
        {
              myRow[columnIndex] = myTableRow[rowIndex];
             columnIndex ++;
        }
        resultat.rows.Add(myRow);
        rowIndex  ++;
    }
    un truc dans ce style quoi =D

  5. #5
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Y'a toujours plus simple, mais ça marche pas forcément

    Mettons que tu récupère les données dans une DataTable. Tu créer une nouvelle DataTable, et tu remplit en bouclant sur les valeurs par colonnes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    foreach(DataColumn column in myTable.Columns)
    {
        foreach(DataRow row in myTable.Rows)
        {
            Object value = row[column];
            ...
        }
    }
    Il suffit ensuite de créer une nouvelle DataRow à rajouter à la nouvelle DataTable avec les valeurs récupérées pour chaque colonne.

    [EDIT] J'me suis fait grillé
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 337
    Points : 456
    Points
    456
    Par défaut
    Citation Envoyé par laedit Voir le message
    J'me suis fait grillé
    =D

  7. #7
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut
    Merci beaucoup à vous deux

    Au final ça me donne ça:

    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
     
            public void RemplTableOrdrePourRefInt(string RefInt)
            {
                TableOrdre.Clear();
                DataTable TableOrdreBis = new DataTable();
                SqlDataAdapter m_daDataAdapter;
                SqlConnection ConsultConnection = new SqlConnection(oSurveillant.strConnexion);
                m_daDataAdapter = new SqlDataAdapter("OrdreJourPourPiece '" + RefInt + "','" + oSurveillant.Environnement.ToString() + "';", ConsultConnection);
                m_daDataAdapter.Fill(TableOrdreBis);
                ConsultConnection.Close();
     
                foreach (DataRow R in TableOrdreBis.Rows)
                {
                    TableOrdre.Columns.Add(R[0].ToString());
                }
                int rowIndex = 1;
                DataRow myRow = TableOrdre.NewRow();
                int columnIndex = 0;
                foreach (DataRow myTableRow in TableOrdreBis.Rows)
                {
                    myRow[columnIndex] = myTableRow[rowIndex];
                    columnIndex++;
                }
                TableOrdre.Rows.Add(myRow);
                SignalerOrdre();
            }

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

Discussions similaires

  1. [Toutes versions] Inverser ligne et colonne (publipostage)
    Par 8e8eClo dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 21/11/2010, 10h26
  2. awk: faire inversion ligne en colonne
    Par sdere dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 18/07/2008, 01h40
  3. [MySQL] Inversion lignes et colonnes
    Par Perceuse-Killer dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 24/01/2008, 10h43
  4. [Access SQL]Requetes SQL pour "inverser" ligne et colonne
    Par trihanhcie dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 16/07/2007, 13h12
  5. TDBGrid: Inverser lignes et colonnes
    Par metalrider dans le forum Bases de données
    Réponses: 1
    Dernier message: 25/02/2006, 22h51

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