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