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 :

Un DataBindingComplete qui ne change rien


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Un DataBindingComplete qui ne change rien
    Bonjour à tous !

    Je cherche à comprendre l'erreur dans mon code... mon datagridview1 ne se change jamais ... et je suis un bout dépourvu même après multiples recherches sur le web ! Si vous pouvez m'aider ca serait TRÈS apprécié...

    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 Sub DataGridView1_DataBindingComplete(ByVal sender As Object, _
        ByVal e As DataGridViewBindingCompleteEventArgs) _
        Handles DataGridView1.DataBindingComplete
     
            Dim Visible As Boolean = False
            For Each Row As DataGridViewRow In DataGridView1.Rows
     
                Dim numero As Integer = Row.Cells(0).Value
                MessageBox.Show("Voyage non fermé teeest:" & numero)
     
                cmd3 = New SqlCommand("Select * FROM Porec WHERE REC_NO=" & numero, con2)
                If con2.State = ConnectionState.Closed Then con2.Open()
                Dim sdr3 As SqlDataReader = cmd3.ExecuteReader()
                While sdr3.Read = True
     
                    If sdr3.Item("Porec_close") <> 0 Then
                        Visible = False
                    Else
                        Visible = True
                    End If
     
                End While
                Row.Visible = Visible
                sdr3.Close()
     
            Next
     
        End Sub

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Salut,

    Je viens de tester un code presque similaire et cela marche parfaitement...

    En pas à pas à :
    - Tu passe bien dans ton événement ?
    - Le résultat de ta requête est correct "sdr3.Item("Porec_close")" ?


    PS : Est-ce que le plus simple ne serait pas supprimer tes lignes avant de "binder" à ta source !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Un gros merci tout d'abord de me venir en aide ... fort apprécié je sais plus du tout où me lancer...

    j'ai mis ceci pour tester si je rentrais dans la boucle... et je ne vois que test 1 à deux reprises.. comme si mon appel de la rox.cells ne se fesait pas... si je l'enlève je rentre bien dedans.

    Je suis débutant et j'ai fait le datagridview dans le form.vb en graphique en allant chercher ma base sql... je ne vois pas nul part où j'aurais pu inséré un if pour visible ou non ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub DataGridView1_DataBindingComplete(ByVal sender As Object, _
        ByVal e As DataGridViewBindingCompleteEventArgs) _
        Handles DataGridView1.DataBindingComplete
     
            Dim Visible As Boolean = False
            For Each Row As DataGridViewRow In DataGridView1.Rows
                MessageBox.Show("test 1")
                Dim numeros As String = Row.Cells(0).Value
                MessageBox.Show("test 2")
                Dim numero As Integer = 0
                numero = CInt(numeros)
                MessageBox.Show("test 3")

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    J'ai fait d'autres tests encore....

    Dans mon sql... le numero de reception (cell(0)) est un string et le rec_no dans l'autre table un integer... je crois cela me pause problème alors j'ai tout mis ainsi... mais je me rend jusqu'à test 5 en passant le 4(donc je rentre dans mes boucles/if) ... je n'ai cependant pas le 6... ca peut aider ?

    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
     Private Sub DataGridView1_DataBindingComplete(ByVal sender As Object, _
        ByVal e As DataGridViewBindingCompleteEventArgs) _
        Handles DataGridView1.DataBindingComplete
     
            Dim Visible As Boolean = False
            For Each Row As DataGridViewRow In DataGridView1.Rows
                MessageBox.Show("test 1")
                Dim numeros As String = Row.Cells(0).Value.ToString
                MessageBox.Show("test 2")
                Dim numero As Integer = 0
                MessageBox.Show("test 3")
                If numeros Is DBNull.Value Then
                    MessageBox.Show("test 4")
                Else
                    MessageBox.Show("test 5")
                    numero = Convert.ToInt32(numeros)
                    MessageBox.Show("test 6")
                    cmd3 = New SqlCommand("Select * FROM Porec WHERE REC_NO=" & numero, con2)
                    If con2.State = ConnectionState.Closed Then con2.Open()
                    Dim sdr3 As SqlDataReader = cmd3.ExecuteReader()
                    While sdr3.Read = True
     
                        If sdr3.Item("Porec_close") <> 0 Then
                            Visible = False
                        Else
                            Visible = True
                        End If
     
                    End While
                    Row.Visible = Visible
                    sdr3.Close()
                End If
            Next

  5. #5
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    C'est un peu "old school" ta méthode pour débuguer.

    Tu utilises bien Visual Studio ?

    Car avec VS tu peux débuguer ton code et voir les valeurs de tes variables...

    Il suffit de mettre un point d'arrêt dans ton code (le point rouge) :
    Nom : breakpoint.jpg
Affichages : 83
Taille : 50,8 Ko

    Ensuite grâce à quelques touches tu pourras naviguer dans code (F5, F10, F11....)
    Nom : menu_debug.jpg
Affichages : 82
Taille : 35,7 Ko

    Tutos :
    Debogueur VS(Fr)
    Debugging VS(En)

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Bon... j'ai tout lu et modifier un peu le code... voici ce que cela donne... je ne comprend pas les variables sont bonnes et tout fonctionne... mais le 36260 que tu vois plus bas s'affiche pareil dans mon datagridview et pourtant j'ai vérifié il est -1 .... !!!
    Images attachées Images attachées  

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    MERCI pour ton aide... tu m'as lancé sur des pistes... et j'ai réussi... le code est TRÈS long à chercher dans le sql mais il fonctionne et au final ca me va !!

    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
     
    Private Sub DataGridView1_DataBindingComplete(ByVal sender As Object, _
        ByVal e As DataGridViewBindingCompleteEventArgs) _
        Handles DataGridView1.DataBindingComplete
            Dim int As Integer = 0
            Dim Visible As Boolean = False
            For Each Row As DataGridViewRow In DataGridView1.Rows
                Dim numeros As Integer = Row.Cells(0).Value
                Dim numero As String = "0"
                int = int + 1
                numero = Convert.ToString(numeros)
     
     
                cmd3 = New SqlCommand("Select * FROM Porec WHERE REC_NO=" & numeros, con2)
                If con2.State = ConnectionState.Closed Then con2.Open()
                Dim sdr3 As SqlDataReader = cmd3.ExecuteReader()
                While sdr3.Read = True
                    Dim verification = sdr3.Item("Porec_close")
                    If verification <> 0 Then
                        Visible = False
                    Else
                        Visible = True
                    End If
     
                End While
                DataGridView1.Rows(int).Visible = Visible
                sdr3.Close()
     
            Next
     
        End Sub

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Citation Envoyé par P_Mercier Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                cmd3 = New SqlCommand("Select * FROM Porec WHERE REC_NO=" & numeros, con2)
    Il est préférable d'utiliser les requêtes paramétrées. Voir Tuto ou Faq.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/09/2005, 18h35
  2. SELECT qui ne retourne rien à cause d'anti-slash
    Par mikyfpc dans le forum Outils
    Réponses: 8
    Dernier message: 07/08/2005, 23h04
  3. Requete OR qui ne ramene rien
    Par Sapience dans le forum Langage SQL
    Réponses: 10
    Dernier message: 14/04/2005, 12h12
  4. procédure stockée qui ne fait rien
    Par trotters213 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 10/03/2005, 20h25
  5. [LG]Programme qui n'affiche rien
    Par ousunas dans le forum Langage
    Réponses: 4
    Dernier message: 17/02/2004, 19h38

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