cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 2010
-
17 oct. 2005 à 19:10
cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 2010
-
18 oct. 2005 à 12:54
Bonsoir à tous,
J'ai une table "personne" sous sql-server avec pleins de champs (numero,nom,prenom,montant etc....)
Et dans mon programme j'ai une classe Personne avec des propriétées (les mêmes en faite) numéro,nom,prenom, montant....
Quel est le meilleur moyen de faire en sorte que les données sous sql
server s'insere parfaitement dans ma classe ? Enfin pour être sur de
connaitre le bon type en faite... Si je fais "Select * from personne
where personne.id = 1" ; je voudrais récuperer ce que je vais
recevoir et créer un nouvel instance de personne avec. A moins qu'il y
ait plus malin à faire je sais pas.
cs_poppyto
Messages postés540Date d'inscriptiondimanche 29 décembre 2002StatutModérateurDernière intervention13 mai 2011 18 oct. 2005 à 11:10
D'abord il faut créer des objets métiers qui ont une interface commune avec des fonctions telles que GetTableName() et SetProperty(string Property,object value)/GetProperty(string Property) pour accéder aux propriété par rapport aux chaine.
SELECT t1.Nom as t1$Nom, t2.Pseudo as t2$Pseudo FROM table1 as t1,table2 as t2 WHERE t1.id = t2.id;
Ensuite, tout est dans la requête. Essaye de voir comment tu pourrais construire une telle requête en passant uniquement des objets en paramètre.
Je ne peux malheureusement pas te donner d'exemple, c'est pas simple à réaliser. Je serais toi, je m'orienterais vers Xml.
cs_poppyto
Messages postés540Date d'inscriptiondimanche 29 décembre 2002StatutModérateurDernière intervention13 mai 2011 17 oct. 2005 à 19:59
Le mieux serait d'utiliser un sgbd objet...
Dans ton cas, tous les choix sont possible : bourrin / sérialisation xml / moteur bourrin.
Perso j'ai opté pour un moteur dans mes projets, mes classes métiers se remplissent toutes seules :).
J'imagine que la sérialization XML doit fonctionner à merveille, reste plus qu'à coder quoi :)
cs_poppyto
Messages postés540Date d'inscriptiondimanche 29 décembre 2002StatutModérateurDernière intervention13 mai 2011 17 oct. 2005 à 22:31
Personnellement, je pense que si c'est pour utiliser une ou deux tables associé aux objets, je pense que le mieux c'est de faire la méthode d'association bourrin sinon tu vas perdre ton temps.
En gros :
- Remplir un dataset ou datatable avec la requête.
- Recupérer chacune des colonne et les associer à l'objet.
C'est bourrin mais ça marche et c'est la méthode la plus rapide quand on n'est pas trop à l'aise en développement.
Je n'ai pas de lien sous la main mais il pourra trouver sur ce site des exemples d'utilisation de Dataset et DataGrid.
cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 20102 18 oct. 2005 à 09:47
merci, et si les clients qui se connecte à la base sont en permanance
connecté au sgbd via le réseau, faut mieux faire comme tu dis avec un
dateset ou bien faire :
SqlDateReader reader = cm.ExecuteReader() ;
while (reader.Read)
{
jean_pierre->set_Nom(reader.get_String(0)) ;
}
enfin une méthode bien moyennageuse. Ce qui m'enbête c'est que à terme
je vais avoir pas mal de table alors j'aimerais une manière sûr de pas
faire d'erreur....
cs_poppyto
Messages postés540Date d'inscriptiondimanche 29 décembre 2002StatutModérateurDernière intervention13 mai 2011 18 oct. 2005 à 09:56
Ok donc évite la méthode bourrin si tu vas avoir plein de tables.
Tu peux coder un moteur de récupération de donnée (pas simple mais faisable) où alors tout faire avec la sérialization XML. Si tu n'as pas trop envie de coder, je te conseil la deuxième méthode, il doit y avoir des exemples de sérialization/désérialization XML sur ce site.
cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 20102 18 oct. 2005 à 10:07
Quand tu parles d'un moteur de récuperation de données, c'est quoi en
faite un truc qui recupere les données dans un dataset et qui remplis
des instances de classes en fonctions de ce qu'il a recu ? et pour le
serialisation xml il faut que je recupere un fichier à l'arrivé ? mais
quel fonction avec sqlconnection me permet de recupere un fichier xml
via une requete sql ?
cs_poppyto
Messages postés540Date d'inscriptiondimanche 29 décembre 2002StatutModérateurDernière intervention13 mai 2011 18 oct. 2005 à 10:32
> Quand tu parles d'un moteur de récuperation de données, c'est quoi en faite un truc qui recupere les
> données dans un dataset et qui remplis des instances de classes en fonctions de ce qu'il a recu ?
Oui, mais j'entend bien de manière abstraite, la fonction ne doit connaitre aucun type sinon c'est plus un moteur, c'est du spécifique.
dataSet.GetXml() pour récupérer le résultat d'une requête en XML.
SqlDataAdapter remplit des DataSet ou des DataTable.
cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 20102 18 oct. 2005 à 10:59
mais comment est ce que je peux connaitre le type à l'avance t'aura pas un exemple même succin par hazard ? juste histoire d'avoir une idée en faite....