Bonjour je viens de me mettre à la programmation multi-couche en vb.net et ado.net je pense avoir compris les liens entre chaque couche mais c'est la construction des classes qui me posent problème.
J'ai 4 couche : IHM (interface homme - machine), DAL (accès aux données), BEL (objet métier) et BPL (règle de gestion, appel des fonctions du DAL)
J'ai une table Access nommé User, j'ai donc crée mon interface pour en ajouter un enregistrement (IHM).
DAL, une classe pour la connexion :
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 'ajout référence vers BEL Imports BEL 'ajout référence vers BEL Imports BPL Public Class Inscription Private Sub AjouterUser(ByVal login As String, ByVal password As String, ByVal question As String, ByVal reponse As String) Dim NewUser As USER = New USER(login, password, question, reponse) Dim UserBPL As New BPL.BPLuser UserBPL.BPL_Ajouter(NewUser) End Sub Private Sub Binscription_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Binscription.Click AjouterUser(TBlogin.Text, TBpassword.Text, CBquestion.SelectedText, TBlogin.Text) End Sub End Class
une autre pour la table User (c'est la que je bloque un peu beaucoup) je ne vois pas trop comment je dois organisé cela
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 ' Ajout référence : Microsoft ADO Ext. 2.8 for DDL and Security Public Class AccessConnexion 'attribut chemin de la base Private chemin As String 'Attribut connexion unique à une source de données Private cnx As OleDb.OleDbConnection 'Attribut chaine de connection (fournisseur d'accès aux données + chemin) Private cnxstr As String 'retourne vrai si le fichier (base) existe Public Function verif_chemin() As Boolean Return System.IO.File.Exists(chemin) End Function Public Sub Initialise_connexion() chemin = My.Application.Info.DirectoryPath & "\Data_base.accdb" cnxstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & chemin & ";" End Sub Public Sub Create_base() 'base de donnée Dim db As New ADOX.Catalog Try db.Create(cnxstr) Catch ex As Exception Throw New Exception("Erreur de création de la base" & Environment.NewLine & ex.Message) End Try End Sub Protected Sub Open_connexion() Try 'test si la connexion n'est pas déjà ouverte If cnx.State <> 1 Then cnx = New OleDb.OleDbConnection cnx.ConnectionString = cnxstr cnx.Open() End If Catch ex As Exception Throw New Exception("Erreur d'ouverture connexion" & Environment.NewLine & ex.Message) End Try End Sub Protected Sub Close_connexion() Try 'test si la connexion n'est pas déjà fermer If cnx.State <> 0 Then cnx.Close() End If Catch ex As Exception Throw New Exception("Erreur fermeture connexion" & Environment.NewLine & ex.Message) End Try End Sub End Class
BEL, instanciation des objet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Public Class AccessUsers 'vide End Class
et la couche BPL
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 Public Class USERS #Region "Attributs" Private User_login As String Private User_password As String Private User_question As String Private User_reponse As String #End Region #Region "Property" Public Property Login() As String Get Return User_login End Get Set(ByVal value As String) User_login = value End Set End Property Public Property Password() As String Get Return User_password End Get Set(ByVal value As String) User_password = value End Set End Property Public Property Question() As String Get Return User_question End Get Set(ByVal value As String) User_question = value End Set End Property Public Property Reponse() As String Get Return User_reponse End Get Set(ByVal value As String) User_reponse = value End Set End Property #End Region Public Sub New(ByVal Login As String, ByVal Password As String, ByVal Question As String, ByVal Reponse As String) User_login = Login User_password = Password User_question = Question User_reponse = Reponse End Sub End Class
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 'ajout référence vers la BEL Imports BEL 'ajout référence vers la DAL Imports DAL Public Class BPLuser 'Envoie de l'objet metier à la DAL pour l'ajout de l'utilisateur Public Sub BPL_Ajouter(ByVal NewUser As USER) Dim UserDAL As New DAL.AccessUsers UserDAL.Ajouter(NewUser) End Sub End Class
Partager