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 :

Désordre colonnes datagridview


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Qatar

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mai 2012
    Messages : 31
    Par défaut Désordre colonnes datagridview
    Bonjour,
    j'ai un problème d'affichage qu'il me faut impérativement résoudre car j'ai presque terminer mon projet.
    J'ai un datagridview qui affiche correctement le résultat des recherches avec un datatable alimenté par requête sql depuis la base de données. Cependant l'ordre des colonnes changent du jour au lendemain sans aucune modification de code.
    Merci pour toute aide.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Par défaut
    Salut,

    ta requête, elle ressemble à quoi ? Fais-tu du 'order by' afin de récupérer les données dans l'ordre (par clé primaire, par nom, etc...)?


    Arnaud DS

  3. #3
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 116
    Par défaut
    Bonjour,

    quel type de projet pour commencer?

    Ensuite, vérifie la propriété AutoGenerateColumn de ta dataGridView.

    Essaye en la passant à false lorsque tu initialise tes composants graphiques.


    ta requête, elle ressemble à quoi ? Fais-tu du 'order by' afin de récupérer les données dans l'ordre (par clé primaire, par nom, etc...)?
    Un order by aurait un impact sur l'ordre des lignes, non des colonnes il me semble.

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Par défaut
    Citation Envoyé par Dynamès Voir le message

    ta requête, elle ressemble à quoi ? Fais-tu du 'order by' afin de récupérer les données dans l'ordre (par clé primaire, par nom, etc...)?
    Un order by aurait un impact sur l'ordre des lignes, non des colonnes il me semble.
    Exact, au temps pour moi j'avais mal lu

    Et, BTW, j'approuve ta réponse!

    @yoonu
    Si ça ne fonctionne pas : tes colonnes sont créées en dures ou automatiquement via les colonnes de ta BDD ? Peux-tu montrer un peu de code?


    Arnaud DS

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Qatar

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mai 2012
    Messages : 31
    Par défaut
    voici le code pour le datatable
    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
     
    public DataTable tsPomp(string d1,string d2)
    {
    	sql = "SELECT p.idpomp,p.datepomp AS Date,p.hrpomp AS   Heure,m.libmark AS Compte,d1.libdep AS Source,d2.libdep AS Destination,pr.libprod AS Produit," +
    		  "p.actpomp AS Activite,p.typepomp AS Type,p.dtepomp AS Densite,p.ambpomp AS Amb,p.vol15pomp AS Vol15,p.poidspomp AS Poids "+
    		  "FROM pompage p "+
    		  "LEFT JOIN produit pr ON pr.idprod=p.idprodpomp "+
    		  "LEFT JOIN marketeur m ON m.idmark=p.comptepomp "+
    		  "LEFT JOIN depot d1 ON d1.iddep=p.iddepsrpomp "+
    		  "LEFT JOIN depot d2 ON d2.iddep=p.iddepdestpomp "+
    		  "WHERE p.datepomp BETWEEN '"+d1+"' AND '"+d2+"' "+
    		  "ORDER BY p.datepomp desc,m.libmark,pr.libprod,p.actpomp;";
    	cmd = new MySqlCommand(sql, con);
    	dt = new DataTable();
     
    	con.Open();                                               
    	dadapter = new MySqlDataAdapter(cmd);
    	dadapter.Fill(dt);
    	con.Close();
     
    	return dt;
    }
    et le datagridview
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    private void DGV_PgResultat(string d1, string d2)
    {
    	ctlpg = new ctlPomp();
    	dt = new DataTable();
    	bs = new BindingSource();
     
    	dt = ctlpg.tsPomp(d1, d2);
    	bs.DataSource = dt;
    	DGV_Pg.DataSource = bs;
     
    	// colonnes invisibles
    	DGV_Pg.Columns[0].Visible = false;  // bouton
    	DGV_Pg.Columns[1].Visible = false;  // idpomp
     
    	// largeurs et alignement
    	DGV_Pg.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    	DGV_Pg.Columns[2].FillWeight = 15; // date
    	DGV_Pg.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
    	DGV_Pg.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    	DGV_Pg.Columns[3].FillWeight = 10; // hr
    	DGV_Pg.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
    	DGV_Pg.Columns[4].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    	DGV_Pg.Columns[4].FillWeight = 25; // compte
    	DGV_Pg.Columns[4].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
    	DGV_Pg.Columns[5].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    	DGV_Pg.Columns[5].FillWeight = 30;  // sr
    	DGV_Pg.Columns[5].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
    	DGV_Pg.Columns[6].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    	DGV_Pg.Columns[6].FillWeight = 30;  // dest
    	DGV_Pg.Columns[6].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
    	DGV_Pg.Columns[7].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    	DGV_Pg.Columns[7].FillWeight = 25; // prod
    	DGV_Pg.Columns[7].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
    	DGV_Pg.Columns[8].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    	DGV_Pg.Columns[8].FillWeight = 25;  // acti
    	DGV_Pg.Columns[8].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
    	DGV_Pg.Columns[9].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    	DGV_Pg.Columns[9].FillWeight = 25;  // type
    	DGV_Pg.Columns[9].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
    	DGV_Pg.Columns[10].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    	DGV_Pg.Columns[10].FillWeight = 20; // amb
    	DGV_Pg.Columns[10].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
    	DGV_Pg.Columns[11].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    	DGV_Pg.Columns[11].FillWeight = 20; // vol
    	DGV_Pg.Columns[11].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
    	DGV_Pg.Columns[12].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    	DGV_Pg.Columns[12].FillWeight = 20; // poids
    	DGV_Pg.Columns[12].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
     
    	// largeur du datagridview
    	int n = 0;
    	for (int i = 1; i < DGV_Pg.ColumnCount; i++)
    	{
    		if (DGV_Pg.Columns[i].Visible)
    			n += (int)DGV_Pg.Columns[i].Width;
    	}
    	DGV_Pg.Width = n;
     
    }

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Par défaut
    Salut yoonu,

    En utilisant le mode debug, peux-tu dire si c'est à l'enrichissement de ta DataTable ou de ta DataGridView que les colonnes sont dans le désordre ? (Et dans le deuxième cas, as-tu essayé le paramètre conseillé par Dynamès ?).

    Après puisque tu les définis à la main dans ta requête il y a toujours la solution de repli : boucler sur ta Datatable et assigner les éléments de à ta DataGridView en référence au nommage. Mais c'est un peu crade je pense qu'on peut l'éviter.


    Arnaud DS

Discussions similaires

  1. Redimensionnement colonne datagridview
    Par mactwist69 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/05/2008, 11h32
  2. Désactivation Tri colonne Datagridview
    Par jeepibmx dans le forum VB.NET
    Réponses: 4
    Dernier message: 17/04/2008, 14h23
  3. vb.net - Modifier type colonne DataGridView
    Par House MD dans le forum VB.NET
    Réponses: 10
    Dernier message: 08/04/2008, 15h05
  4. Comment re-indexer des colonnes DataGridView
    Par Contrec dans le forum C#
    Réponses: 1
    Dernier message: 01/10/2007, 09h06
  5. Format d une colonne DataGridView en durée ?
    Par Slumpy dans le forum VB.NET
    Réponses: 3
    Dernier message: 28/09/2007, 18h54

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