Probléme combobox et datagridview [Résolu]

- - Dernière réponse :  Damiens29 - 29 janv. 2013 à 11:51
Bonjour,

J'ai un probléme avec ma combobox.
Elle se remplit bien par requete mais je souhaiterais que lorsque je selectionne une donné de ma combobox, mon datagridview m'affiche les données liés a cette combobox par rapport a ma BDD.

Merci d'avance pour votre aide !!
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Dernière intervention
23 janvier 2016
3
Merci
Salut,

tu sais qu'il y a moyen d'éviter les boucles de remplissage du grid,
il suffit de formater ton SELECT de fàçon à avoir exactement ce que tu veux voir afficher, puis tu fais :

leGrid.DataSource = (DataTable)dtResultat;
leGrid.DataBind(); // ici le grid se rempli tout seul


Ensuite tu peux affiner le rendu avec des évènement comme :
grid_CellFormatting // appelée a chaque remplissage d'une cellule
ou
grid_DataBound // pour chaque ligne "bindée" à la source de données

sinon pour le reste, c'est étroitement lié à ton programme, pas moyen de t'aider plus que ça.

bonne prog., bye...

Merci yann_lo_san 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de yann_lo_san
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Dernière intervention
23 janvier 2016
0
Merci
Salut,

tu fais une fonction qui rempli le gridView selon la valeur selectionnée dans la combo.
Au changement de la valeur de la combo (evt selectedIndexChanged) tu rappelle la fonction de remplissage du grid:

private System.Windows.Forms.DataGridView _grid;
private System.Windows.Forms.ComboBox _cbo;

private void PopulateDataGridView()
{
    _grid.Rows.Clear();

    // la valeur en cours de la combo
    string sValCombo = _cbo.SelectedItem.ToString();
    if( !String.IsNullOrEmpty(sValCombo) )
    {
        // requete avec sValCombo
        // Bind grid
    }
}

private void _cbo_SelectedIndexChanged(object sender, EventArgs e)
{
// Vide et rerempli le grid
Cursor.Current = Cursors.WaitCursor;
try
{
PopulateDataGridView();
}
catch ( Exception ) { }
finally
{
Cursor.Current = Cursors.Default;
//_grid.Focus();
}
}



bye...
Commenter la réponse de yann_lo_san
0
Merci
En fait,c est ce que je fais déjà mais ca n'a pas l'air de fonctionner..

Tu vas peut être voir une erreur que je n'ai pas vu :

private void combo_salarié_SelectedIndexChanged(object sender, EventArgs e)
        {
            string ComboSala;
            int k = 0;
            ComboSala = combo_salarié.SelectedItem.ToString();
            connexion.Open();
            SqlDataAdapter command new SqlDataAdapter("SELECT * FROM dbo.T_Temporaire where  Temp_Salarie '" + ComboSala + "' ", connexion);
            
            command.Fill(data_temporaire2, "Temp_Periode");
            command.Fill(data_temporaire2, "Temp_Service");
            command.Fill(data_temporaire2, "Temp_Salarie");
            command.Fill(data_temporaire2, "Temp_CodeProjet");
            command.Fill(data_temporaire2, "Temp_LibProjet");
            command.Fill(data_temporaire2, "Temp_NbJours");
            command.Fill(data_temporaire2, "Temp_Commentaires");

            //Dgv_D_Salarie.DataSource = data_temporaire.Tables[0];
            foreach (DataRow row in data_temporaire2.Tables[0].Rows)
            {
                if (k < data_temporaire2.Tables[0].Rows.Count)
                {
                    
                    Dgv_D_Salarie.Rows[j].Cells[1].Value = row["Temp_Periode"];
                    Dgv_D_Salarie.Rows[j].Cells[3].Value = row["Temp_Service"];
                    Dgv_D_Salarie.Rows[j].Cells[4].Value = row["Temp_CodeProjet"];
                    Dgv_D_Salarie.Rows[j].Cells[5].Value = row["Temp_LibProjet"];
                    Dgv_D_Salarie.Rows[j].Cells[6].Value = row["Temp_NbJours"];
                    Dgv_D_Salarie.Rows[j].Cells[7].Value = row["Temp_Commentaires"];
                }
                j++;
            }
            connexion.Close();
        } 
Commenter la réponse de Damiens29
0
Merci
Je viens de voir la plupart des mes erreurs (row[j] au lieu de row[k],j++ au lieu de k++ mais j'ai toujour un probléme quand je vide le dgv,il sort complétement de mon selectedindex.
Commenter la réponse de Damiens29
0
Merci
Je te remercie pour ta réponse.
Je ne suis pas encore trés callé niveau databinding et autre tableadapter.
Pour le moment,je n'utilise que des requetes sql et des dataset mais je vais m'y mettre d'ici peu.
A bientot !
Commenter la réponse de Damiens29

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.