begin process at 2012 02 09 03:08:26
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de Donnees

 > DATALIB : SIMPLIFIEZ-VOUS LA VIE AVEC ADO.NET

DATALIB : SIMPLIFIEZ-VOUS LA VIE AVEC ADO.NET


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de Donnees Source .NET ( DotNet ) Classé sous :adonet, datalib Niveau :Initié Date de création :01/09/2005 Date de mise à jour :05/01/2006 20:34:58 Vu / téléchargé :10 234 / 2 004

Auteur : addy

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
En général, programmer ADO.NET n'a rien de difficile. Mais à force de repéter tout le temps les mêmes gestes, on fini par se lasser un peu.

La bibliothèque DataLib comporte des classes qui prennent automatiquement en charge l'accomplissement d'un certain nombre de tâches quand on travaille avec ADO.NET.
Les habitués de Java reconnaîtront certainement un certain nombre de similitudes avec l'API commons.dbutils. C'est que je me suis légèrement inspiré de cette dernière. Mais .NET n'étant pas Java, j'ai dû faire quelques ajouts pour tirer pleinement profit des avantages de la plate-forme .NET.

Dans la DataLib, vous trouverez principalement une classe nommée QueryRunner. Elle permet d'exécuter des commandes SQL sur une source de données ADO.NET et de recupérer le resultat sous la forme voulue. La transformation du resultat est assurée par un IDataReaderHandler à transmettre en paramètre à la méthode de QueryRunner que vous invoquez. DataLib contient huit implémentations de l'interface IDataReaderHandler et vous pouvez en ajouter. QueryRunner permet également de préparer un commande SQL en vue d'une exécution en boucle avec des valeurs de paramètres variables.

Vous y trouverez aussi une classe nommée DataSetManager qui encapsule un DataSet et fourni des méthodes pour le chargement, l'actualisation et la mise à jour des données du DataSet.
DataSetManager utilise très souvent DbObjectsFactory pour créer par reflexion certains objets nécessaires à la gestion du DataSet interne. Comme DataSetManager hérite de QueryRunner, il vous permet également d'attaquer directement la BDD sans passer par le DataSet.

Toutes ces classes peuvent travailler indifféremment avec n'importe quel fournisseur de données; célà vous dispense de devoir modifier votre code dès que vous changez de fournisseur de données. Mais pour que la portabilité soit parfaite, il faudrait que la syntaxe de vos requêtes SQL ne pose pas de problème en cas de changement de fournisseur. Comme solution, DataLib propose la classe QueryLoader dont le rôle est de charger vos requête à partir d'un fichier texte et de les invoquer par nom(les requêtes étant écrites dans le fichier sous-forme : nom = code sql;). Comme ça, à chaque changement de fournisseur, vous n'avez qu'à reéditer votre fichier de requêtes.

Bonne programmation et merci d'avance pour vos remarques et suggestions.


 Conclusion

Le code n'a pas été commenté mais célà viendra. La demo fournie est basée sur une base PostgreSQL mais il est facile de l'adapter à une base Access. Les classes DataSetManager et QueryLoader ne sont pas exploitées dans la demo. Une prochaîne mise à jour devrait présenter une démo plus complète.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

05 septembre 2005 10:32:00 :
Le code est à présent entièrement commenté. La demo illustre de l'utilisation de QueryLoader. Le code a également été retouché par endroits.
06 décembre 2005 21:52:34 :
De nombreuses corrections ont été faites sur le code. La démo a également été mise à jour. Une seconde démo a été ajoutée pour plus d'exhaustivité
05 janvier 2006 20:34:59 :
Des fonctionnalités ont été ajoutées à la classe QueryRunner pour tirer profit des Transactions. La classe gère désormais mieux les connexions qu'elle trouve ouvertes au démarrage des métodes RunXXX et Prepare

 Sources du même auteur

Source avec Zip Source .NET (Dotnet) IMPORTER/EXPORTER FACILEMENT VOS DONNÉES SOUS DIFFÉRENTS FOR...
Source avec Zip Source .NET (Dotnet) UTILITAIRE CRYSTAL REPORTS
Source avec Zip Source avec une capture Source .NET (Dotnet) ADDYSHEDULE : VISUALISEUR DE PROGRAMMES
Source avec Zip Source .NET (Dotnet) UTILITAIRE DE CRYPTOGRAPHIE
Source avec Zip Source avec une capture Source .NET (Dotnet) EXPORTER UNE BASE DE DONNEES MS ACCESS VERS MYSQL OU POSTGR...

 Sources de la même categorie

Source avec Zip Source avec une capture BIEN ADMINISTRER LES ETUDIANTS ET LEURS CÔTES par okosa
Source avec Zip VBA EXEL GESTION DE PERSONEL NOUVEAU CONTRAT DE TRAVAI par oudlarbi
Source avec Zip Source avec une capture CREATION D'UN OBJET D'ACCÈS AUX DONNÉES par okosa
Source avec Zip Source .NET (Dotnet) MISAHORAIRE par MdelM
Source avec Zip Source avec une capture BASEDEDONNEES,GESTIONDEMALADES,DATABASSE par shadkitenge

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) GESTION DES STAGIAIRES par simo5963
Source avec Zip Source .NET (Dotnet) UTILISER UNE BASE DE DONNÉES ACCESS AVEC ADO.NET par moutonjr
Source avec Zip Source .NET (Dotnet) GÉNÉRATEUR D'IMAGES DANS UN DATAGRIDVIEW par istamkenitra
Source avec Zip Source avec une capture Source .NET (Dotnet) GESTION STAGES\STAGIAIRES par rami2533
Source avec Zip Source avec une capture Source .NET (Dotnet) OUVRIR ET MODIFIER UNE BASE ACCESS AVEC ADO.NET [ COCKTAIL E... par sLaYeR31DevCpp

Commentaires et avis

Commentaire de JJDai le 02/09/2005 18:43:57

Ca à l'air interressant je jette un oeil de suite. je commence avec ADO .Net et c'est pas toujours évident.

Commentaire de Hobby le 07/11/2005 01:08:06

Bonsoir,

Ta source ne fonctionne plus dans .net 2005.
Aucun problem a la conversion, mais a l'exécution:
Dans RowProcessors\BasicRowProcessor.vb
Au debut, dans la fonction "Public Overridable Function ToScalar"
tu as: "Return reader(field)"

Ceci génère une erreur que je ne comprend pas:
"Latebound overload resolution cannot be applied to 'Item' because the accessing instance is an interface type."

Merci
Olivier

Commentaire de addy le 06/12/2005 20:48:22

Désolé d'avoir attendu tout ce temps pour te répondre. Je m'était absenté pour  une brève période et je n'ai donc lu ton commentaire que récemment. Neamoins, je puis t'informer que la dernière mise à jour de cette source devrait logiquement resoudre ce problème car bien que je ne dispose pas encore de VS.NET 2005, j'ai déjà été confronté à un problème similaire. Ce qui m'a poussé à modifier le prototype de la méthode IRowProcessor.ToScalar en même temps que plein d'autres détails dans la DataLib.

Merci
Michel

Commentaire de rabbiwan le 10/03/2006 15:26:29

Bonjour
Je trouve ton code source pas mal du tout.
J'ai voulu voir un peu comment ca se comportait et j'ai voulu mettre un select avec plusieurs variables. Ex : select * from test where mat='01' and annee='2006' etc etc.
Comment fais tu pour passer plusieurs variables?
qRunner.RunQuery(Queries("Customers"), New Object() {"@City", "México D.F."}{"@pays", "México"}, New ObjectListHandler(GetType(Customer))) est la bonne méthode?
Pour récupérer un select avec une clause where on doit passer par une list. Ne serait pas possible de le faire passer directement dans un datatable ou dataset?
Merci pour ces informations.

Commentaire de addy le 14/03/2006 14:30:07

Supprime les accolades entre  "México D.F" et "@Pays" (c'est la même liste d'arguments)

Commentaire de rabbiwan le 14/03/2006 14:39:03

bonjour
ok merci de l'info, par contre je dois ajouter une virgule ou un point-virgule entre les deux arguments?
New Object() {"@City", "México D.F.","@pays", "México"}
New Object() {"@City", "México D.F.";"@pays", "México"}

De plus j'ai essayer de retourner un objet dataset ou datatable mais le retour ne se fait pas trés bien. j'ai développé une autre classe pour cela.
Tu as pas eu le même problème?

En tout cas bravo pour ton code bien commenté et le projet dans son ensemble.

Commentaire de addy le 31/03/2006 15:43:08

Ajoute une virgule entre les arguments

Commentaire de addy le 19/04/2006 17:09:43

Ah, j'avais pas remarqué le second volet de ton commentaire. Pour retourner un DataSet ou un DataTable, tu dois carrément définir ta propre implémentation de IDataReaderHandler. Sinon, utilise DataSetManager qui intègre deja un DataSet et qui possède toutes les fonctionnalités de QuerryRunner.

Commentaire de addy le 19/04/2006 17:13:04

Ah, j'avais pas remarqué le second volet de ton commentaire. Pour retourner un DataSet ou un DataTable, tu dois carrément définir ta propre implémentation de IDataReaderHandler. Sinon, utilise DataSetManager qui intègre deja un DataSet et qui possède toutes les fonctionnalités de QuerryRunner.

Commentaire de nivb le 04/05/2007 22:56:29

Code intéressant !
Je voudrais gérer un enregistrement binaire de type Blob cela est-il possible ?

Commentaire de addy le 16/05/2007 11:28:11

Parfaitement, il suffit que ton SGBD les supporte. Les BLOBs sont représentés par la plupart des fournisseurs sous-forme de tableaux de Bytes. C'est à toi de restituer leur forme originale. Pour la gestion des images par exemple, refère-toi à cette source: http://www.vbfrance.com/codes/AFFICHER-MODIFIER-IMAGES-DANS-DATAGRID_31401.aspx

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,945 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales