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

  1. #1
    Membre régulier
    Homme Profil pro
    BAC +3
    Inscrit en
    octobre 2018
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : octobre 2018
    Messages : 163
    Points : 89
    Points
    89
    Par défaut Erreur manipulation dataGridView c# Winform
    Bonjour, j'ai crée un code pour que lorsque l'utilisateur double clique sur la cellule , il puisse l'éditer comme un tableau excel et que cela se change en base. Cependant j'ai une erreur que je ne comprend pas :



    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
     
    /// Retire le readonly est stock dans une variable la valeur actuelle de cette celulle
    private void Seals_DataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
    {
        Seals_DataGridView.CurrentCell.ReadOnly = false;
        varTempForEditCell = Seals_DataGridView.CurrentCell.Value.ToString();
    }
     
    /// Vérifie si le contenu actuel lors de la fin de l'édition est le même que celui stocker dans la variable , sinon il appelle une fonction qui fait un update dans la base
    private void Seals_DataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
     
        if ( Seals_DataGridView.CurrentCell.Value.ToString() == varTempForEditCell )
        {
           MessageBox.Show("Mêmme Valeur");
        }
        else
        {
            if (editingRequests.UpdateFeature(Seals_DataGridView.CurrentCell.OwningColumn.Name.ToString(), varTempForEditCell, Seals_DataGridView.CurrentRow.Cells["device_id"].Value.ToString()) == true) /// Les valeurs récupérées ici sont : Nom de la colonne de la cellule , nouvelle valeur, et id du contenu de la celulle ( que je récupère dans une autre colonne ) 
            {
                SetUp_Interface(sealId.ToString()); /// Rafraîchis la dataGridView
     
            }
            else
            {
                MessageBox.Show("Valeur différente mais une erreur s'est produite lors de la modification en base de données");
            }
     
     
        }
     
        varTempForEditCell = "";
        Seals_DataGridView.CurrentCell.ReadOnly = true;
    }
    Et j'ai comme message d'erreur :
    L'opération n'est pas valide, car elle se traduit par un appel réentrant à la fonction SetCurrentCellAddressCore
    Merci du coup de main

  2. #2
    Membre régulier
    Homme Profil pro
    BAC +3
    Inscrit en
    octobre 2018
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : octobre 2018
    Messages : 163
    Points : 89
    Points
    89
    Par défaut
    J'ai trouvé pourquoi l'erreur, c'est parce que je clique sur une autre cellule pour désactiver le focus et donc ca me génère l'erreur. Si je fais "Entrer" au lieu du clique sur une autre cellule l'erreur n'apparaît pas. Mais comment palier cependant à la possibilité d'éviter l'erreur quand je clique autre part ?

    Merci

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2018
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Bonjour, réponse assez tardive, je ne sais pas si tu as toujours ce problème mais il semblerait qu'en ajoutant ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            this.BeginInvoke(new MethodInvoker(() =>
            {
                moveRowTo(dataGridView2, 0, 1);
            }));
    A la propriété CellEndEdit de ton datagriview cela fixe le soucis, ayant jamais eu cette erreur cela reste cependant théorique.

Discussions similaires

  1. Erreur sur Datagridview, System.IndexOutOfRangeException index -1
    Par garciajulien dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/10/2012, 15h08
  2. [Débutant] manipulation datagridview
    Par missoby dans le forum C#
    Réponses: 1
    Dernier message: 08/03/2012, 17h28
  3. DataGridView / C1 WinForms
    Par Chavadam dans le forum Windows Forms
    Réponses: 2
    Dernier message: 17/06/2010, 20h01
  4. editer une ligne de datagridview dans winform
    Par slimoo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 17/11/2009, 18h08
  5. Message d'erreur , delete Datagridview
    Par shadowil dans le forum VB.NET
    Réponses: 1
    Dernier message: 04/07/2007, 10h08

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