Ado.net sans douleur


Description

L'idée est de manipuler les BDD presque sans s'en rendre compte.

Pour chaque table de la BDD on créé une Class du même nom.
Dans chaque Class on créé des propriétés aux mêmes noms que les champs.

Pour réduire le volume du code j'ai créé une Class qu'il suffit d'hériter.

Procédure (s?inspirer de la class TAB_CONTACT) :
  • Récupérer le module OLEDB
  • Créer une class du même nom que la table à gérer et hériter la Class AccessTable
  • Créer autant de propriétés qu?il existe de champs
  • Personnaliser les procédures : InitVar, InitFields, DelSubLevels, ReadFields, UpdateFields
  • Recréer les procédures New (copier/coller depuis TAB_CONTACT)
  • Optionnel : créer de nouvelles procédures personnalisées EnumRecords


Contraintes :
  • Chaque table doit comporter une clé primaire et cette clé doit s?appeler Index
  • Ne gère pas (encore ??) les jointures

Source / Exemple :


'#Gestion de la BDD
OLEDB.DataBase.Path = "c:\...\exemple.mdb"
OLEDB.DataBase.Open()
OLEDB.DataBase.Close()

'#Lister les enregistrements
Dim MyContacts As New OLEDB.Table.TAB_CONTACT
Dim iContact As List(Of Integer) = MyContacts.EnumRecords

'#Lire un enregistrement
Dim MyContacts As New OLEDB.Table.TAB_CONTACT(index_de_l_enregistrement_a_lire)
MyContacts.Read()
Msgbox MyContacts.FirstName
Msgbox MyContacts.LastName
Msgbox MyContacts.Height

'#Supprimer un enregistrement
Dim MyContacts As New OLEDB.Table.TAB_CONTACT(index_de_l_enregistrement_a_supprimer)
MyContacts.Delete()

'#Ajouter un enregistrement
Dim MyContacts As New OLEDB.Table.TAB_CONTACT()
MyContacts.Add()
MyContacts.FirstName = "TOTO"
MyContacts.LastName = "LULU"
MyContacts.Height = "1,75"
MyContacts.Update()

'#Modifier un enregistrement
Dim MyContacts As New OLEDB.Table.TAB_CONTACT(index_de_l_enregistrement_a_modifier)
MyContacts.Edit()
MyContacts.FirstName = "TOTO"
MyContacts.LastName = "LULU"
MyContacts.Height = "1,75"
MyContacts.Update()

Conclusion :


Merci de me faire remonter vos remarques et idées d'amliorations.

J'envisage de créer une appli qui se chargera de créé automatiquement tout le code nécessaire en lisant dans une BDD.
Mais faute de temps je remet et je remet...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.