Je ne sais pas vraiment comment formuler la question alors s'il vous plaît ours avec moi ...Obtenir des informations d'une classe supérieure?
J'ai 3 classes: Serveur, base de données et table. Chaque classe a une propriété "Nom". Comment je veux que cela fonctionne est que chaque serveur peut avoir plusieurs bases de données et chaque base de données peut avoir plusieurs tables. Donc, dans la classe Server, j'ai cette propriété.
Private _databases As List(Of Database)
Public Property Databases() As List(Of Database)
Get
Return _databases
End Get
Set(ByVal value As List(Of Database))
_databases = value
End Set
End Property
Et j'ai quelque chose de similaire dans la classe Database pour les tables. Cela fonctionne bien maintenant parce que je peux faire quelque chose comme ceci pour obtenir toutes les bases de données dans le serveur.
For Each db In s.Databases 's being the server object
Debug.Print(db.Name)
Next
Je voudrais étendre ces classes. Je souhaite que la classe de serveur gère toutes les informations de connexion et que les autres classes utilisent les informations de connexion de la classe de serveur.
Par exemple, je configure une classe de serveur et définissez la chaîne de connexion au serveur. Ensuite, je souhaite que la classe de base de données utilise la propriété serverclass.connectionstring pour se connecter au serveur et obtenir une liste de toutes les bases de données. Mais je veux garder ce code dans la classe de base de données. Comment puis-je faire ceci?
J'ai joint un code de ce que je veux faire.
Public Class Server
Private _name As String
Public Property Name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
Private _databases As List(Of Database)
Public Property Databases() As List(Of Database)
Get
Return _databases
End Get
Set(ByVal value As List(Of Database))
_databases = value
End Set
End Property
End Class
'-----New class
Public Class Database
Private _name As String
Public Property Name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
Private _tables As List(Of Table)
Public Property Tables() As List(Of Table)
Get
Return _tables
End Get
Set(ByVal value As List(Of Table))
_tables = value
End Set
End Property
'This is where I need help!
Private Sub LoadTables()
dim connectionstring as string = server.connectionstring 'Possible?
'Do database stuff
End Class
Merci d'avoir lu!
Merci c'est ce que je voulais faire. –