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 :

DataGridView Selection Changed


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 106
    Points : 56
    Points
    56
    Par défaut DataGridView Selection Changed
    bonsoir
    Je développe une application gestion BD.j'ai un combobox et une gridview qui affiche des info.
    voici une part du code de l'evenement selectedindexchange:
    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
    private void Combo_Prov_SelectedIndexChanged(object sender, EventArgs e) // remplir gridview
            {
     
                nomprov_to_codprov(Combo_Prov.Text);
     
     
     
                //try
               // {
                    if (accConnection.State == ConnectionState.Open)
                    {
     
                        StrSQL = "SELECT Contact.Code_contact AS Code ,Contact.Fonction, Contact.FirstName AS Nom, Contact.LastName AS Prénom, Contact.Phone_contact1 AS Téléphone1, Contact.Phone_Contact2 AS Téléphone2  FROM Province INNER JOIN Contact ON Province.Code_Prov = Contact.Code_Prov WHERE (((Province.Name_Prov)=@param2)) ";
                        strSQL2 = "SELECT Province.Phone_Prov, Province.Phone_office FROM Province WHERE (((Province.Name_Prov)=@Param2))";
     
                        accCommand.Connection = accConnection;
                        accCommand.CommandText = StrSQL;
                        accCommand.CommandType = CommandType.Text;
                        accCommand.Parameters.Add("@Param2", OleDbType.Char).Value = Combo_Prov.Text;
                        ContactAdapter = new OleDbDataAdapter(accCommand);
     
                        ContactTable = new DataTable();
                        ContactAdapter.Fill(ContactTable);
                        BindingSource bS = new BindingSource();
     
                        contactDataGridView.DataSource = ContactTable;
                        bS.DataSource = ContactTable;
                        contactDataGridView.Columns[0].Visible = false;
    et voici l'evenement contactDataGridView_SelectionChanged
    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
    private void contactDataGridView_SelectionChanged(object sender, EventArgs e)
            {
                
                
                DataGridViewRow ligne = contactDataGridView.CurrentRow;
                
                MessageBox.Show(contactDataGridView.RowCount.ToString());
                
                
                    // index du row
                    MessageBox.Show(ligne.Cells[1].Value.ToString());
                     index_row = contactDataGridView.CurrentRow.Index;
                    //identifiant de l'enregistrement
                    string indentifiant = (ligne.Cells[0].Value.ToString());
                    identifiant = int.Parse(indentifiant);
                    fonction = (ligne.Cells[1].Value.ToString());
                    nom = (ligne.Cells[2].Value.ToString());
                    prenom = (ligne.Cells[3].Value.ToString());
                    Telephone1 = (ligne.Cells[4].Value.ToString());
                    Telephone2 = (ligne.Cells[5].Value.ToString());
                
            }
    Lors de la première exécution et changement de la valeur du combo tout se passe bien mais une fois je change une autre fois la valeur du combo y a une exception de type object not set to a reference
    J ai utilisé des breakpoints pour voir de plus pres,alors j ai constaté que la variable ligne à la première exécution est remplie mais une fois je passe à une autre valeur du combo elle est NULL et c est ce qui déclenche l'erreur
    Merci pour votre aide

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 172
    Points : 25 112
    Points
    25 112
    Par défaut
    http://msdn.microsoft.com/fr-fr/libr...=vs.80%29.aspx (touche F1 sur CurrentRow)

    Valeur de la propriété

    DataGridViewRow qui représente la ligne contenant la cellule active ou référence Null (Nothing en Visual Basic) s'il n'y a aucune cellule active.
    => fonctionnement normal

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 106
    Points : 56
    Points
    56
    Par défaut
    Oui c est normal,mais pourquoi current row est null??elle est pleine dans la première exécution puis elle est nulle quand je change la valeur du combo box,sachant que toute mes tables sont remplies

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 172
    Points : 25 112
    Points
    25 112
    Par défaut
    peut être lors d'une perte de focus, enfin la solution est de tester si null => sortir du void

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 106
    Points : 56
    Points
    56
    Par défaut
    Enfin,j ai utilisé le meme code mais avec un evenement gridview different et ça marche ss aucun probleme.
    J ai utilisé DataGridView_CellClick au lieu de selectionchange avec qq modification et ça marche
    merci

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

Discussions similaires

  1. datagridview selection ligne
    Par Nako_lito dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/10/2008, 13h40
  2. datagridview selection affichage
    Par firasDev dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/08/2008, 14h40
  3. Selection change function
    Par NeMo_O dans le forum MATLAB
    Réponses: 2
    Dernier message: 26/06/2008, 12h57
  4. DataGridView Selection .
    Par suRem dans le forum Windows Forms
    Réponses: 7
    Dernier message: 02/05/2008, 14h52
  5. modifier le contenu d'un <td> si le <select> change
    Par jakouz dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/11/2006, 14h45

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