Gestion des bases de données sous VB
Fermé
lamharchi58
Messages postés
4
Date d'inscription
vendredi 24 février 2017
Statut
Membre
Dernière intervention
7 mai 2017
-
27 avril 2017 à 09:42
Kalissi Messages postés 218 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 15 juillet 2019 - 8 mai 2017 à 17:24
Kalissi Messages postés 218 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 15 juillet 2019 - 8 mai 2017 à 17:24
A voir également:
- Gestion des bases de données sous VB
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Reinstaller windows sans perte de données - Guide
- Effacer les données de navigation - Guide
- Excel validation des données liste - Guide
2 réponses
jordane45
Messages postés
38289
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 novembre 2024
4 703
27 avril 2017 à 10:16
27 avril 2017 à 10:16
Bonjour,
Donc ta question concerne le VB.NET et non les bases de données à proprement parler non ?
=> Je déplace donc dans le forum VB
Et puis....
Qu'as tu commencé à coder ?
Quelle SGBD utilises-tu ?
Donc ta question concerne le VB.NET et non les bases de données à proprement parler non ?
=> Je déplace donc dans le forum VB
Et puis....
Qu'as tu commencé à coder ?
Quelle SGBD utilises-tu ?
Kalissi
Messages postés
218
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
15 juillet 2019
20
Modifié le 8 mai 2017 à 17:26
Modifié le 8 mai 2017 à 17:26
Bonjour,
Je te conseille d'ajouter une classe dans ton projet pour l'accès à la BD.
Accéder directement à la BD dans la même classe que la couche de présentation est une pratique plus ou moins bien structuré.
En te référence à Google, tu trouveras facilement les modèles
organique standard du trois couches.
Une couche de présentation (Form)
Une couche d'accès au donnée (UAD ou CDA)
Une couche BD.
En somme :
Une couche Présentation (classe) (ton form)
Une couche d'accès au données (classe UAD)
Une couche données (ta BD).
Tu crée une classe d'objet fortement typé.
Exemple :
Dans cet objet, tu peux ajouter des membres booléen du style,
EstModifier
EstNouveau
EstSupprimer
cela te facilitera la gestion de mise à jour ...
Une classe qui te remplie une liste fortement typé (UAD)
À ce stade, dans la classe de ton form, tu récupère la liste fortement
typé.
Ensuite, tu construit une méthode pour enregistrer ta liste.
Bon, ça peut te paraitre compliqué, je ne connais pas ton niveau.
Mais je peux te dire qu'une fois la mécanique en place, c'est à toute
épreuve.
Si tu veux un exemple plus précis, j'ai un petit projet de ce style.
https://mon-partage.fr/f/3qJu82Zf/
K
Je te conseille d'ajouter une classe dans ton projet pour l'accès à la BD.
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
VBBASE3DataSet.Clear()
ProduitsTableAdapter.Fill(VBBASE3DataSet.Produits)
End Sub
Accéder directement à la BD dans la même classe que la couche de présentation est une pratique plus ou moins bien structuré.
En te référence à Google, tu trouveras facilement les modèles
organique standard du trois couches.
Une couche de présentation (Form)
Une couche d'accès au donnée (UAD ou CDA)
Une couche BD.
En somme :
Une couche Présentation (classe) (ton form)
Une couche d'accès au données (classe UAD)
Une couche données (ta BD).
Tu crée une classe d'objet fortement typé.
Exemple :
Public Class ENTITE_AUTO
#Region "--- Attributs ---"
Private zAnnee As Long = 0
Private zMarque As String = String.Empty
Private zModele As String = String.Empty
#End Region
#Region "--- Propriétés ---"
Public Property Annee As Long
Get
Return Me.zAnnee
End Get
Set(value As Long)
Me.zAnnee = value
End Set
End Property
Public Property Marque As String
Get
Return Me.zMarque
End Get
Set(value As String)
Me.zMarque = value
End Set
End Property
Public Property Modele As String
Get
Return Me.zModele
End Get
Set(value As String)
Me.zModele = value
End Set
End Property
#End Region
#Region "--- Constructeur ---"
Public Sub New()
End Sub
#End Region
End Class
Dans cet objet, tu peux ajouter des membres booléen du style,
EstModifier
EstNouveau
EstSupprimer
cela te facilitera la gestion de mise à jour ...
Une classe qui te remplie une liste fortement typé (UAD)
Public Class UAD ' Unité d'accès aux données
Public Function ObtenirListe() As IList(Of ENTITE_AUTO)
Dim reqSQL As String = "SELECT * FROM MaTable"
Dim MaCollection As Ilist(Of ENTITE_AUTO)
MaCollection = New list(Of ENTITE_AUTO)
Dim MonEntite As ENTITE_AUTO
MonAdapteur = New OleDbDataAdapter(reqSQL, Connexion)
MonAdapteur.Fill(MonDataSet, "MaTable")
MonDataTable = MonDataSet.Tables("MaTable")
For Each DataRowLocal In MonDataTable.Rows
MonEntite = New ENTITEAUTO
MonEntite = CreerInstance(DataRowLocal)
MaCollection.Add(MonEntite)
Next
Return MaCollection
End Function
Private Function CreerInstance(ByVal Ligne As DataRow) As ENTITE_AUTO
Dim MonObJet As New ENTITE_AUTO
If (Ligne.Item("Annee") IsNot Nothing) Then
MonObjet.Annee = Convert.ToInt64((Ligne.Item("Annee").ToString))
End If
' ... les autres champs
End Function
End Class
À ce stade, dans la classe de ton form, tu récupère la liste fortement
typé.
Dim Liste As IList(Of ENTITE_AUTO) = UAD.ObtenirListe()
ProduitsBindingSource.DataSource = Liste
Ensuite, tu construit une méthode pour enregistrer ta liste.
Liste = UAD.Sauvegarger(Liste)
Bon, ça peut te paraitre compliqué, je ne connais pas ton niveau.
Mais je peux te dire qu'une fois la mécanique en place, c'est à toute
épreuve.
Si tu veux un exemple plus précis, j'ai un petit projet de ce style.
https://mon-partage.fr/f/3qJu82Zf/
K
Modifié le 4 mai 2017 à 21:03
J'ai créer un formulaire sous VB Express 2012, je lui ai associé une base de données ACCESS.
J'ai utilisé l'objet BindingSource pour naviguer, pour insérer un nouvel enregistrement et pour en supprimer. Mon problème c'est que rien ne s'effectue réellemlent sur la base de données.
Ci joint le code que j'ai réalisé :
EDIT : Ajout des balises de code
7 mai 2017 à 14:35
Veuillez m'excuser, je n'ai pas compris ce que vous m'avez écrit "EDIT : Ajout des balises de code"
Merci de votre collaboration
7 mai 2017 à 20:02
Pour ton problème, l'objet bindingsource travaille en mémoire haute, il faut donc (à chaque modification ou au bout d'un temps défini) écrire son contenu dans la base de données.
Comme les bdd ce n'est pas mon fort, je ne te propose pas de code, mais il y a des exemples là