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 :

DataGridView: ArgumentOutOfRangeException was caught


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Par défaut DataGridView: ArgumentOutOfRangeException was caught
    Bonjour,

    Je ne vois pas ce qui ne va pas dans mon code.
    J'ai l'erreur suivante:
    L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.

    Nom du paramètre : index

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private void boutonRechercher_Click(object sender, EventArgs e)
    {
       int index = datagridview.SelectedCells[0].RowIndex;
     
       DataTable dataTable = (DataTable)datagridview.DataSource;
     
       if (datagridview.Rows[index].Cells[1].Value.ToString() != "" && datagridview.Rows[index].Cells[2].Value.ToString() != "")
    	dataTable.DefaultView.RowFilter = "champs1 like '" + textbox1.Text +
    	"%' AND champs2 like '" + textbox2.Text + "%'";
       else if (datagridview.Rows[index].Cells[2].Value.ToString() != "")
    	dataTable.DefaultView.RowFilter = "champs2 like '" + textbox2.Text + "%'";
     
    }
    Merci,

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    "index" n'est pas utile : Remplacer "Rows[index]" par "CurrentRow". (ne rien faire si datagridview.CurrentRow==null).

  3. #3
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Par défaut
    J'ai du refaire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DataTable dataTable = (DataTable)datagridview.DataSource;
     
    dataTable.DefaultView.RowFilter = "champs1 like '" + textbox1.Text +
    	"%' AND champs2 like '" + textbox2.Text + "%' " +
            "OR champs2 = '" + textbox2.Text + "'";

    Mon problème était du fait que lorsque je sélectionne une ligne où un des 2 champs est vide et que je clique sur le bouton rechercher, ça ne retournait aucune donnée.

    C'est pour ça que j'ai voulu tester si un des 2 champs est vide, je change mon row filter.

    Merci beaucoup pour votre aide.

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

Discussions similaires

  1. ArgumentOutOfRangeException was unhandeled
    Par JasBeckC dans le forum C#
    Réponses: 4
    Dernier message: 29/03/2015, 14h39
  2. ArgumentOutOfRangeException et dataGridView
    Par amirad dans le forum VB.NET
    Réponses: 14
    Dernier message: 29/07/2009, 15h18
  3. Réponses: 1
    Dernier message: 19/08/2008, 08h44
  4. [Génération] The dialect was not set
    Par sylvain_neus dans le forum Hibernate
    Réponses: 8
    Dernier message: 17/03/2004, 10h57
  5. requested URL /forms90/f90servlet was not found
    Par Aeternus dans le forum Oracle
    Réponses: 11
    Dernier message: 03/02/2004, 16h45

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