Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MAFBINDERHELPER : UNE CLASSE POUR BINDER AUTOMATIQUEMENT VOS CLASSES SUR VOS REQUÊTES


Information sur la source

Catégorie :Base de données Source .NET ( DotNet ) Classé sous : Binding, attribute, PropertyInfo, Reflexion Niveau : Débutant Date de création : 12/06/2008 Date de mise à jour : 12/06/2008 13:04:44 Vu / téléchargé: 3 270 / 166

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


Description

Lassé de devoir écrire à la main le résultat de mes requêtes sur mes objets métier, j'ai créé cette classe qui se charge de tout toute seule...
En prime, elle est capable de construire les 4 requêtes de base (SELECT, UPDATE, DELETE, INSERT) toute seule.

Comment ça marche ?

En bien pour faire simple, vous devez tagger les classes représentant vos objects métier avec des attributs [MafTableBinding] et [MafColumnBinding]... ensuite, vous instanciez un binder via la classe générique Binder<T>... après, c'est tout simple :p
 

Source

  • // Exemple d'utilisation (à partir de la classe Comment présent dans le projet) :
  • DbConnection dbConnection;
  • Binder<Comment> commentBinder;
  • dbConnection = DbProviderFactories.GetFactory("System.Data.SqlClient").CreateConnection();
  • dbConnection.ConnectionString = @"Data Source=[...]";
  • commentBinder = new Binder<Comment>(this.dbConnection);
  • // Chargement d'une collection :
  • List<Comment> comments = commentBinder.GetAll();
  • // Chargement d'un seul commentaire :
  • Comment comment;
  • PrimaryKeyParameters pkp = commentBinder.GetPrimaryKeyParameters();
  • pkp["@comments_id"].Value = 999;
  • comment = commentBinder.GetSingle(pkp);
  • // Suppression d'un commentaire
  • commentBinder.Delete(comment);
  • // Modification d'un commentaire
  • comment.Commentaire = "Bla bla...";
  • commentBinder.Update(comment);
// Exemple d'utilisation (à partir de la classe Comment présent dans le projet) :

DbConnection dbConnection;
Binder<Comment> commentBinder;

dbConnection = DbProviderFactories.GetFactory("System.Data.SqlClient").CreateConnection();
dbConnection.ConnectionString = @"Data Source=[...]";

commentBinder = new Binder<Comment>(this.dbConnection);

// Chargement d'une collection :
List<Comment> comments = commentBinder.GetAll();

// Chargement d'un seul commentaire :
Comment comment;
PrimaryKeyParameters pkp = commentBinder.GetPrimaryKeyParameters();
pkp["@comments_id"].Value = 999;
comment = commentBinder.GetSingle(pkp);

// Suppression d'un commentaire
commentBinder.Delete(comment);

// Modification d'un commentaire
comment.Commentaire = "Bla bla...";
commentBinder.Update(comment);




Conclusion

Cette classe est succeptible d'être modifiée aux gré des optimisations que je pourrais à faire.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de tmcuh le 16/06/2008 12:54:59 10/10

Méthodoligie intelligente, ça me plait bien :)

signaler à un administrateur
Commentaire de pdl le 16/06/2008 22:49:27

Petite question, j'ai des erreurs à la compile, mais c'est peut-être parce que j'utilise VS 2003.

dans la ligne :
[code]
return this.Find(
                    p => p.Name.Replace("@", string.Empty)
                                        .Equals(propertyName.Replace("@", string.Empty),
                                                StringComparison.InvariantCultureIgnoreCase));
[/code]

la partie p => p.Name c'est nouveau comme syntaxe ?

D'avance merci,
Pierre

signaler à un administrateur
Commentaire de sebmafate le 17/06/2008 10:14:36 administrateur CS

oui ce code est compilé avec VS2008 et utilise les délégués anonymes de C# 3.

De toute façon, même sans ces délégués, ce code utilise massivement les Generics, donc inexploitable avec VS2003.

signaler à un administrateur
Commentaire de MorpionMx le 29/06/2008 10:43:31 administrateur CS 10/10

Très bonne source, très utile.
Ca fait une base bien propre pour ensuite l'adapter à ses besoins.

Le gros plus : Les méthodes courtes, lisibles, et commentées.
Tellement rare de voir du code aussi propre !

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Binding entre deux valeurs [ par taoetc ] bonjour je voudrais lier la valeur enabled d'un boutton à une variable booléenne de telle sort e que , lorsque ma variable booléenne change, mon bout Winform : Binding et Rowstate de Dataset [ par Arthenius ] Salut tout le monde,Alors voila mon pb j'ai une form dans laquelle j'ai un datagrid qui est rempli par un dataset(lui-meme rempli par un DataAdapter)j Reflexion.Emit - Events et appel de méthode [ par bucherb ] Hello!!Chuis complètement coincé. J'arrive à rien et je trouve aucune info sur le net..J'aimerais créer dynamiquement une classe contenant un certain Assembly: custom attributes [ par jusob ] Bonjour, j'utilise des custom attributes du genre: [assembly:AssemblyTitle("First plugin")] [assembly:AssemblyCompany("MySelf")] [assembly:Assemb Reflexion [ par iunknow ] Salut,Je suis en train de r&#233;aliser un g&#233;n&#233;rateur XMI pour net et je butte sur deux choses.1 - Pour savoir si un champ est statique, Fie C# Xml attribute [ par shad252 ] Bonjour, voila mon probleme : je creer un fhichier xml avec differents elements... Plus tard je veux ajouter un attribut &#224; un de mes elements par [C#] [Interface] implémentation [ par scoubidou944 ] n'&#233;tant pas super &#224; l'aise avec les interface, on va prendre un exemple de base. J'ai un objet de type Node qui contient : - un nom - un di [C#] ActiveX Adobe PDF Reader - Late Binding [ par smashingraph ] Bonjour, J'ai un petit souci avec l'ActiveX d'Adobe Reader (Version 7). J'ai une application qui charge des documents PDF &#224; l'aide de l'ActiveX binding foireux de combobox [ par georgeduke ] Bonjour,Apr&#232;s moultes recherches, je n'arrive toujours pas &#224; alimenter mon combobox &#224; partir d'une colonne d'une table mysql...Voici mo C# Valeur null textbox Binding [ par thorgal1612 ] BonjourJ'utilise le binding sur .net 2.0 avec un Dataset typ&#233; issus d'une base access. Je rencontre un souci : 1- Quand je saisis quelque chose d


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.