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 :

[C# 2.0] Utilisation d'un DataGridView conçu graphiquement avec un dataSet.Fill


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 120
    Points : 48
    Points
    48
    Par défaut [C# 2.0] Utilisation d'un DataGridView conçu graphiquement avec un dataSet.Fill
    Bonjour,

    Je ne sais pas comment faire :

    J'ai construit une DataGridView en utilisant le concepteur graphique (facile et pratique il est réutilisé par beaucoup d'autres applications dans l'état).
    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
     
                // 
                // dataGrid1
                // 
                this.dataGrid1.AllowUserToAddRows = false;
                this.dataGrid1.AllowUserToDeleteRows = false;
                this.dataGrid1.Blocked = false;
                this.dataGrid1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
                this.dataGrid1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
                this.colGroupeValide,
                this.colGroups});
                this.dataGrid1.Location = new System.Drawing.Point(13, 70);
                this.dataGrid1.Name = "dataGrid1";
                this.dataGrid1.RowHeadersWidth = 20;
                this.dataGrid1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
                this.dataGrid1.Size = new System.Drawing.Size(373, 157);
                this.dataGrid1.TabIndex = 23;
                // 
                // colGroupeValide
                // 
                this.colGroupeValide.Frozen = true;
                this.colGroupeValide.HeaderText = "";
                this.colGroupeValide.MinimumWidth = 30;
                this.colGroupeValide.Name = "Selected";
                this.colGroupeValide.Resizable = System.Windows.Forms.DataGridViewTriState.False;
                this.colGroupeValide.Width = 30;
                // 
                // colGroups
                // 
                this.colGroups.HeaderText = "Nom des groupes";
                this.colGroups.MinimumWidth = 300;
                this.colGroups.Name = "NomGroupe";
                this.colGroups.Resizable = System.Windows.Forms.DataGridViewTriState.False;
                this.colGroups.Width = 300;
    avec la requete SQL qui retourne (elle aussi est utilisée à divers endroits et on utilise pas les mêmes colonnes en fonction d'où elle est utilisée) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    begin
        FOR
        SELECT GROUPES.ID_GROUPES, GROUPES.NOM, 1
        FROM GROUPES
        ORDER BY NOM
        INTO :IdGroupe, :NomGroupe, :Selected
        DO SUSPEND;
    end
    Lors de la sélection des données dans la DB, j'utilise le code suivant :
    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
     
                FbCommand cde = baseData.CreateCommand("DONNEES_GROUPE_SELECT", CommandType.StoredProcedure);
                FbDataAdapter datap = new FbDataAdapter(cde);
                try
                {
                    this.dat.Rows.Clear();
                    if (baseData.OpenConnection(baseData.SqlConnection))
                    {
                        datap.Fill(this.dat);
                        baseData.SqlConnection.Close();
                    }
                }
                catch
                {
                    return null;
                }
     
                // retourne les valeurs
                return dat;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                 dat.Clear();
    this.colGroups.DataSource = dat;
                this.colGroups.DisplayMember = "NomGroupe";
                this.colGroups.MaxDropDownItems = 25;
                this.dataGrid1.DataError += new DataGridViewDataErrorEventHandler(dataGrid1_DataError);
     
                this.dataGrid1.DataSource = dat;
                this.dataGrid1.Columns[0].DataPropertyName = "Selected";
                this.dataGrid1.Columns[1].DataPropertyName = "NomGroupe";
                this.dataGrid1.Refresh();
                this.dataGrid1.Enabled = true;
    le problème c'est que si dans mon dataGrid j'ai un nombre inférieur de colonnes à celui de la requete SELECT (et ici c'est le cas), de toute façon il me rajoute les colonnes du SELECT après les colonnes déjà présentes dans le DataGrid.

    CA me prend un peu la tete et je ne vois pas comment faire proprement.
    Un petit conseil ?
    Merci.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 120
    Points : 48
    Points
    48
    Par défaut
    en d'autres termes si on a construit le DataGrid, on ne peut pas utiliser l'enrichissement des données de ses Rows par un DataSet.Fill.

    Quelle est donc la bonne méthode ?
    Si le résultat du SELECT est chargé dans une DataTable quelle métode pour charger les données dans le DataGridView ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 120
    Points : 48
    Points
    48
    Par défaut
    g trouvé.

    Il faut préciser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                this.dataGrid1.Columns[0].DataPropertyName = "Selected";
                this.dataGrid1.Columns[1].DataPropertyName = "NomGroupe";
    avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.colGroups.DataSource = dat;
    sinon le les trouvant pas il les rajoutait, puis les 2 colonnes qui étaient déjà présentes dans le DataGridView prenaint leur valeur.

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

Discussions similaires

  1. Utiliser les composants classiques de Delphi avec "UIB dataset"
    Par helmis dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/01/2011, 10h42
  2. Alimenter un datagridview déjà formaté avec un dataset
    Par eviolleau dans le forum ASP.NET
    Réponses: 4
    Dernier message: 11/01/2010, 17h23
  3. utilisation d'un datagridview
    Par Elwe31 dans le forum VB.NET
    Réponses: 10
    Dernier message: 13/02/2008, 21h41
  4. Utilisation d'un DataGridView
    Par gabest dans le forum C++/CLI
    Réponses: 0
    Dernier message: 24/08/2007, 11h42
  5. [c#] Utilisation manuelle du dataGridView
    Par damned3 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 16/01/2007, 23h38

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