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

VB.NET Discussion :

Problème d'index négatif


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut Problème d'index négatif
    Bonjour,
    Je souhaite modifier les valeurs de ma base locale CE.

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     Private Sub btn_save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_save.Click
            'Gestion des erreurs de saisie
     
     
            Dim ctl As Control
            Dim HasError As Boolean = False
            Dim Nom_champ As String
     
            EP.Clear()
     
            '
     
            'If txt_Nom.Text.Length = 0 Then
     
            '    EP.SetError(txt_Nom, "Le champ ""Nom"" ne peut être vide !")
     
            '    HasError = True
     
            'End If
     
            '
            For Each ctl In Me.Pnltex2.Controls
                If ctl.Text.Length = 0 Then
     
                    Nom_champ = ctl.Name
                    EP.SetError(ctl, "Le champ " & Nom_champ & " ne peut être vide !")
                    HasError = True
     
                    'ElseIf ctl.Text.Length <> 0 Then
     
                    '    HasError = False
     
                End If
     
            Next
     
            If HasError Then
     
                Exit Sub
     
                'ElseIf HasError = False Then
     
                '    EP.Clear()
     
            End If
     
            '
     
            REM: nous pourrions aller plus loin dans cette gestion des erreur
     
            REM: avec l'ajout d'expressions régilères (RegEx)
     
            REM: pour contrôler les champs tel que l'email ou le code postal,
     
            REM: mais ce n'est pas le but de ce tutoriel.
     
            '
     
            'Récupération de la valeur de la colonne 0 de la première ligne
     
            'sélectionné dans notre DGV.
     
     
     
            Try
     
                '
                Dim ID As Guid = CType(DGlistcand.SelectedRows(0).Cells(0).Value, Guid)
                'Appel de la procédure Update de notre TableAdapter qui tranmettra
     
                'la requête SQL UPDATE.
     
                Dim NbLine As Integer = CandidatTableAdapter.Modifier
     
                REM: Cette procédure retourne un entier indiquant le nombre de lignes modifiés.
     
                '
     
                If NbLine > 0 Then
     
     
     
                    MessageBox.Show("Le contact a bien été mis à jour dans la base de données.", "Mise à jour du contact", MessageBoxButtons.OK, MessageBoxIcon.Information)
     
                    'La modification effectuée nous actualisons les données de notre source
     
                    'de données en effectuant une requête
     
                    'SELECT de nouveau.
     
                    Call RefreshDataSource()
     
                End If
     
                '
     
            Catch ex As Exception
     
                MessageBox.Show("Une erreur est survenue durant l'accès à la base de données." & Environment.NewLine & "Détails de l'erreur: " & ex.Message, "Echec de l'accès aux données.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
     
            End Try
     
     
        End Sub
    et J'ai une erreur d'index lorsque je click sur le bouton "save", Voici l'erreur :

    Une erreur est survenue durant l'accès à la base de données
    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
    C'est une erreur bète je pense mais je bloque un regard neuf trouvera l'erreur enfin j'espère merci d'avance !

  2. #2
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    Et si tu commençais par nous indiquer sur quelle ligne tu as une erreur ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim ID As Guid = CType(DGlistcand.SelectedRows(0).Cells(0).Value, Guid)
    C'est sur cette ligne qu'il y a l'erreur désolé ^^

  4. #4
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    L'erreur vient de là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DGlistcand.SelectedRows(0).Cells(0).Value
    Comment déclares-tu

    et comment le remplis-tu (code).

    Merci

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut
    Je remplis mon datagrid grâce à une bidingsource qui prend les valeurs de ma base CE et mon datagrid n'est pas déclarer il est sur ma form.
    Mais je comprend pas cette histoire d'index négatif comment est-ce que je peut avoir cette erreur ?

  6. #6
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    Je dirais que Sehnsucht t'as dit ou le problème était, quoique je ne sais pas si aucune cellule n'est sélectionné si l'erreur est bien un index négatif. Et normalement de base le Datagridview a toujours une ligne de sélectionné.

    As-tu bien une ligne de sélectionné dans ton DataGrid quand tu exécutes ce code ?

  7. #7
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Bonjour,

    Citation Envoyé par kek's Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim ID As Guid = CType(DGlistcand.SelectedRows(0).Cells(0).Value, Guid)
    C'est sur cette ligne qu'il y a l'erreur désolé ^^
    Ce code permet de prendre le contenu de la première (index en base 0) cellule de la première ligne sélectionnée (SelectedRows) de ton DataGrid(View) or s'il n'y a pas de sélection au moment du clic, le "tableau" SelectedRows ne contient rien, d'où plantage de l'index.

    Donc il faut sans doute vérifier qu'une sélection est bien présente je pense
    Cordialement !

Discussions similaires

  1. [mysql] Toujours ce problème d'index !!
    Par LE NEINDRE dans le forum Requêtes
    Réponses: 8
    Dernier message: 12/10/2005, 17h05
  2. [perl]Problème tableau indexé
    Par LE NEINDRE dans le forum Langage
    Réponses: 8
    Dernier message: 25/08/2005, 21h24
  3. Problème d'index avec load data file
    Par bruno782 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 09/03/2005, 12h11
  4. Tableau à index négatif
    Par karl3i dans le forum C
    Réponses: 14
    Dernier message: 23/10/2003, 17h17
  5. Problème d'index
    Par claude dans le forum SQL
    Réponses: 6
    Dernier message: 04/08/2003, 15h55

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