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 :

Utiliser une fonction dans un winForm


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 255
    Par défaut Utiliser une fonction dans un winForm
    Bonjours à tous,

    Je développe une appli winform pour un projet d'exam.

    Le thème est un calculateur de facture EDF - GDF - EAU + Impôts sur revenue

    Pour le moment j'ai effectué la parti graphique de ma fenêtre EDF.

    J'ai créer une tale AboEdf qui recense tout les abonnement a EDF.

    Je voudrai donc lister le nom des abonnement ( TYpeAbo dans ma table ) dans un comboBox.

    J'ai créer une classe AboEdf avec les champs de ma table AboEdf :

    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
    Imports MonAdminArchi.connexion
    Imports System.Data.SqlClient
    Imports System.Data.Sql
    Public Class AboEdf
     
        Private _id As Integer
        Private _TypeAbo As String
        Private _Puissance As String
        Private _PrixAn As Decimal
        Private _PrixKwhHc As Decimal
        Private _PrixKwHp As Decimal
     
        Public Property id() As Integer
            Get
                Return _id
            End Get
            Set(ByVal value As Integer)
                _id = value
            End Set
        End Property
     
        Public Property TypeAbo() As String
            Get
                Return _TypeAbo
            End Get
            Set(ByVal value As String)
                _TypeAbo = value
            End Set
        End Property
     
        Public Property Puissance() As String
            Get
                Return _Puissance
            End Get
            Set(ByVal value As String)
                _Puissance = value
            End Set
        End Property
     
     
        Public Property PrixAn() As Decimal
            Get
                Return _PrixAn
            End Get
            Set(ByVal value As Decimal)
                _PrixAn = value
            End Set
        End Property
     
        Public Property PrixKwHv() As Decimal
            Get
                Return _PrixKwhHc
            End Get
            Set(ByVal value As Decimal)
                _PrixKwhHc = value
            End Set
        End Property
     
        Public Property PrixKwHp() As Decimal
            Get
                Return _PrixKwHp
            End Get
            Set(ByVal value As Decimal)
                _PrixKwHp = value
            End Set
        End Property
     
     
        Public Sub New(ByVal TypeAbo As String, ByVal Puissance As String, PrixAn As Double, ByVal PrixKwHc As Double, ByVal PrixKwHp As Double)
            _TypeAbo = TypeAbo
            _Puissance = Puissance
            _PrixAn = PrixAn
            _PrixKwhHc = PrixKwHc
            _PrixKwHp = PrixKwHp
        End Sub
     
        Public Overrides Function ToString() As String
            Return String.Format(Me._TypeAbo, Me._Puissance, Me._PrixAn, Me._PrixKwhHc, Me._PrixKwHp)
        End Function
     
     
    End Class
    Puis une classe connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Imports System.Data.SqlClient
    Imports System.Data
     
    Public Class connexion
     
        Public Const DATA_SOURCE As String = "JEROME-PC\SQLEXPRESS"
        Public Const INITIAL_CATALOG As String = "Logiciel_admin"
        Public Const INTEGRATED_SECURITY As Boolean = True
     
    End Class
    Et enfin une classe Gestion :
    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
     
    Imports System.Data.SqlClient
    Imports MonAdminArchi.AboEdf
    Imports MonAdminArchi.connexion
    Public Class Gestion
     
     
      Public Function Lister(ByVal Requete As String) As ArrayList
     
            Dim TabTypeAbo As New ArrayList
            Dim cxString As String = "database=" + connexion.DATA_SOURCE + ";initial Catalogue=" + connexion.INITIAL_CATALOG + ";Integrated security=" + connexion.INTEGRATED_SECURITY + ""
            Dim cx As New SqlConnection(cxString)
            cx.Open()
            Dim query As New SqlCommand(Requete, cx)
            Dim reader As SqlDataReader = query.ExecuteReader
            Dim row As Object() = Nothing
     
            While reader.Read
                If row Is Nothing Then
                    row = New Object(reader.FieldCount) {}
                End If
                reader.GetValues(row)
                Dim i As Integer = 0
                While i < row.GetLength(0)
                    If Not row(i) Is Nothing AndAlso Not (row(i) Is DBNull.Value) Then
                        TabTypeAbo.Add(row(i).ToString())
                    Else
                        Trace.Write("NULL")
                    End If
                    If i < row.GetUpperBound(0) Then
                        TabTypeAbo.Add("|")
                    End If
                    i += 1
                End While
                Trace.Write(vbCrLf)
            End While
            reader.Close()
            cx.Close()
     
     
            Return TabTypeAbo
        End Function
     
     
    End Class
    Je voudrai maintenant que dans la parti vb de ma fenêtre EDF appeler cette fonction comme par exemple :

    Lister("SELECT TypeAbo FROM AboEdf") et ajouter le résulta dans un comboBox.

    J'ai fais ceux ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            Me.ComboBox_abo_edf.Items.Add(Lister("SELECT TypeAbo FROM AboEDF"))
    mais Lister est souligner :
    Une référence à un membre partagé requiert une référence d'objet.
    Je suis bloqué.

    Merci a vous par avance pour votre aide.

    Cdl

    Jérôme

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par benny-blanco Voir le message
    mais Lister est souligner : Une référence à un membre partagé requiert une référence d'objet.
    Ça m'étonnerait que ce soit ça le message, parce que c'est faux... tu as du te planter en le recopiant

    Tu essaies d'appeler à partir de ta form une méthode d'instance de la classe Gestion. Pour faire ça, il te faut donc une instance de la classe gestion...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim g As New Gestion()
    Me.ComboBox_abo_edf.Items.Add(g.Lister("SELECT TypeAbo FROM AboEDF"))
    Une autre option est de rendre Shared la méthode Lister. Dans ce cas le code devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ComboBox_abo_edf.Items.Add(Gestion.Lister("SELECT TypeAbo FROM AboEDF"))

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 255
    Par défaut
    Merci Tomlev, l'erreur a disparu. Mais mon comboBox reste désespérément vide.

    Peut être dois-je bouclé dessus ? Si oui quel boucle ?

    Merci,

    Cdl

    Jerome

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Il faut boucler sur le résultat de Lister :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each item In Gestion.Lister("SELECT ...")
        Me.ComboBox_abo_edf.Items.Add(item)
    Next

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 255
    Par défaut
    Une fois qu'on te lis ça parait tellement évident.

    Encore Merci Tomlev ça marche nikel.

    Cdl

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

Discussions similaires

  1. [RegEx] preg_replace : utiliser une fonction dans les paramètres
    Par Hell dans le forum Langage
    Réponses: 2
    Dernier message: 24/05/2008, 18h32
  2. Comment utiliser une fonction dans une fonction
    Par hatenaku dans le forum Langage
    Réponses: 3
    Dernier message: 19/04/2008, 20h00
  3. Comment utiliser une fonction dans une classe.
    Par metalamania dans le forum wxPython
    Réponses: 5
    Dernier message: 17/02/2008, 17h50
  4. Utiliser une fonction dans un module
    Par formidable78 dans le forum VBA Access
    Réponses: 11
    Dernier message: 30/01/2008, 12h49
  5. DAO impossible d'utiliser une fonction dans un requete
    Par exter666 dans le forum VBA Access
    Réponses: 10
    Dernier message: 24/09/2005, 17h15

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