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 :

Besoin d'aide avec le DataGridView


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 17
    Points : 17
    Points
    17
    Par défaut Besoin d'aide avec le DataGridView
    Bonsoir , je suis en train de faire un petit "projet" ou programe VB+ excel comme base de donnée qui affiche , édite et fait la gestion d'un cabinet médicale et de manière très basique

    Nom : cabinet.PNG
Affichages : 560
Taille : 109,1 Ko

    Comme vous le voyez , le datagrid view m'affiche l'ensemble des noms , prénoms et données de chaque "patients" alors que je veux qu'il m'affichque que ceux qui seront selection avec le bouton suivant et recherche. parce que certains patients ont fait plusieurs consultations.

    j'ai donc essayer de faire un while en comparaisant , la clé "Num du patient" et la clé étrangère du même patient situer dans la tâble des consultations , mais je peine a faire cela.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub afficheCour()
            While dtPat.Rows(numligne).Item(0) <> DataGridView1.Rows(1).Cells(2).Value
                DataGridView1.DataSource = dtCons
            End While
        End Sub
    Je m'y prends peut être mal car je ne connais pas tous les propriétés du datagridview1.
    Voici tout le code .
    Si vous pouviez m'aider et me signaler les quelques petits erreurs..
    Merci .

    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
    Imports System.Data.OleDb
    Public Class Form1
        Dim Cnx As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Kane\Desktop\Cabinet Medical\Cabinet Medical.mdb")
        Dim daPat As New OleDbDataAdapter("Select * From Patients", Cnx)
        Dim daCons As New OleDbDataAdapter("Select * From Consultations", Cnx)
        Dim daMed As New OleDbDataAdapter("Select * From Medicaments", Cnx)
        Dim daCont As New OleDbDataAdapter("Select * From Contient", Cnx)
        Dim dst As New DataSet
        Dim dtPat As DataTable
        Dim dtMed As DataTable
        Dim dtCons As DataTable
        Dim dtCont As DataTable
        Dim numligne As Integer
        Dim NumPtnt As Long
        Sub affichePat()
            TextNumPat.Text = dtPat.Rows(numligne).Item(0)
            TextNom.Text = dtPat.Rows(numligne).Item(1)
            TextPre.Text = dtPat.Rows(numligne).Item(2)
            TextSex.Text = dtPat.Rows(numligne).Item(3)
            TextDne.Text = dtPat.Rows(numligne).Item(4)
            TextProf.Text = dtPat.Rows(numligne).Item(5)
            TextAds.Text = dtPat.Rows(numligne).Item(6)
        End Sub
        Sub afficheCour()
            While dtPat.Rows(numligne).Item(0) <> DataGridView1.Rows(1).Cells(2).Value
                DataGridView1.DataSource = dtCons
            End While
        End Sub
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Try
                Cnx.Open()
                numligne = 0
                daPat.Fill(dst, "Patients")
                dtPat = dst.Tables("Patients")
                daCons.Fill(dst, "Consultations")
                dtCons = dst.Tables("Consultations")
                affichePat()
                DataGridView1.DataSource = dtCons
                MsgBox(DataGridView1.CurrentCell)
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Sub
        Private Sub BtnSuiv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSuiv.Click
            numligne += 1
            If numligne = dtPat.Rows.Count Then
                numligne = 0
            End If
            affichePat()
        End Sub
     
        Private Sub BtnPrec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPrec.Click
            numligne -= 1
            If numligne < 0 Then
                numligne = dtPat.Rows.Count - 1
            End If
            affichePat()
        End Sub
     
        Private Sub BtnPrem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPrem.Click
            numligne = 0
            affichePat()
        End Sub
     
        Private Sub BtnDern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDern.Click
            numligne = dtPat.Rows.Count - 1
            affichePat()
        End Sub
    End Class
    Merci

  2. #2
    Expert éminent 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
    Points : 7 903
    Points
    7 903
    Par défaut
    La meilleure solution serait d'intercaler un BindingSource entre la DataGridView et la DataTable et d'utiliser la propriété "Filter" du BindingSource pour afficher un extrait de la table. La valeur de "Filter" est similaire au contenu de la clause WHERE d'une requête SQL.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Si le BindingSource te fait peur, il y a en plus sommaire, mais plus facile d'emploi, le DataView qui permet aussi de filtrer les données. Mais, je dirais qu'une fois maîtrisé le BindingSource est plus intéressant.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    Salut
    Pouvez vous m'indiquer la syntaxe du Binding source svp vue que je ne connais pas trop cette commande.
    j'ai chercher sur internet , mais la plupart des reponses sont en anglais ou ne répondes pas aux contraintes lié au DatagridView.

    Au du moins l'autre , la syntaxe de l'autre méthode que vous avez dit , avec le datagridview qui fait un filtre.

    Merci

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    Bonjour
    après quelque recherche sur le net , j'ai finalement peux trouver la syntaxe (afin je crois)

    Déclaration du Bindingsource
    Dim DtGridBS As New BindingSource
    Et utilisation du BindingSource avec le Datagridview
    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
       Try
                Cnx.Open()
                numligne = 0
                daPat.Fill(dst, "Patients")
                dtPat = dst.Tables("Patients")
                daCons.Fill(dst, "Consultations")
                dtCons = dst.Tables("Consultations")
                affichePat()
                DataGridView1.DataSource = dtCons
                DtGridBS.DataSource = dtCons
                DtGridBS.Filter = "NumPtnt LIKE '" & TextNumPat.Text & "'"
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Sub
    Mais cela m'affiche comme Erreur : Impossible d'effectuer une opération 'Like' sur System.Int32 et System.String

    A apparement , ça saurait lié au faite que ma Datatable soit numérique et comment résoudre se problème svp.


    EDIT : C'est bon j'ai réussi , en mettants , DtGridBS.Filter = "NumPtnt = '" & TextNumPat.Text & "'"

  6. #6
    Expert éminent 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
    Points : 7 903
    Points
    7 903
    Par défaut
    Penser aussi à la propriété "Sort" du BindingSource, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DtGridBS.Sort = "DateConsult DESC"
    Pour la navigation, regarde le Control "BindingNavigator" (boite à outils/Données).
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

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

Discussions similaires

  1. Besoin d'aide avec Regexp::Assemble
    Par mobscene dans le forum Modules
    Réponses: 5
    Dernier message: 11/04/2007, 12h39
  2. [ASA] J'ai besoin d'aide avec sybase et vb6 svp !!
    Par tibo830 dans le forum SQL Anywhere
    Réponses: 7
    Dernier message: 12/05/2006, 10h09
  3. Besoin d'aide avec TinyXML
    Par Clad3 dans le forum Bibliothèques
    Réponses: 5
    Dernier message: 15/08/2005, 18h20
  4. Réponses: 2
    Dernier message: 29/08/2003, 17h52
  5. Besoin d'aide avec postgresql sous windows NT
    Par Chihuahua dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/07/2003, 08h29

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