Gestion des bases de données sous VB
lamharchi58
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Kalissi Messages postés 218 Date d'inscription Statut Membre Dernière intervention -
Kalissi Messages postés 218 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je n'arrive pas à créer un formulaire qui permet la saisie et la modification dans une base de données sous VB Express
je n'arrive pas à créer un formulaire qui permet la saisie et la modification dans une base de données sous VB Express
A voir également:
- Gestion des bases de données sous VB
- Fuite données maif - Guide
- Trier des données excel - Guide
- Supprimer les données de navigation - Guide
- Vb - Télécharger - Langages
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
2 réponses
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 ?
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
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
Veuillez m'excuser, je n'ai pas compris ce que vous m'avez écrit "EDIT : Ajout des balises de code"
Merci de votre collaboration
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à