Kati83
Messages postés65Date d'inscriptionmardi 9 mars 2004StatutMembreDernière intervention 3 septembre 2004
-
16 mars 2004 à 14:49
cs_JuS
Messages postés121Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention20 mars 2009
-
25 juin 2004 à 17:08
Bonjour,
En fait, j'aurais besoin d'un petit conseil.
Je veux écrire une fonction qui se connecte à ma bd, et grâce à uine procédure stockée, récupère les champs que je lui demande.
Ensuite, je veux que ces champs, qui sont en fait les caractéristiques d'un objet (dont j'ai déjà créé la classe), soient stockés dans une liste d'objets...
Le truc, c'est que j'y arrive pas trop..
Est-ce que queslqu'un pourrait m'aider?
Je vous donne un bout de mon code si ça peut vous aider à comprendre mon problème...
connex.Open();
// monres = objet utilisé pour la lecture des données
//renvoyées
SqlDataReader monres = macmd.ExecuteReader();
// création de mon objet
MaClasseObjets MonObjet = new MaClasseObjets ();
// création d'une liste
ArrayList maliste = new ArrayList();
while (monres.Read())
{
for (int i=0; i<monres.FieldCount; i++)
{
// je mets les valeurs des champs dans mon objet => ici : pb... }
// j'ajoute mon objet à ma liste
maliste.Add(MonObjet);
}
return maliste;
Kati83
Messages postés65Date d'inscriptionmardi 9 mars 2004StatutMembreDernière intervention 3 septembre 2004 16 mars 2004 à 17:51
En fait, j'ai trouvé une solution "barbare".
Je fais :
while (monres.Read())
{
// ici je mets les valeurs des champs retournés dans mon
//objet
monobjet.Id = (int)monres.GetValue(0);
monobjet.Titre = (string)monres.GetValue(1);
//et ainsi de suite...
}
maliste.Add(Actu);
Ca tourne, mais en fait, je voudrais trouver un moyen d'automatiser un peu tout ça, pour faire en sorte de ne pas mettre à chaque fois le nom de l'attribut de mon objet. Ce code est pas pratique : le jour où je change un truc dans ma base, il va falloir que je retourne dans mon code pour tout modifier...
Je sais pas trop si je suis assez claire, et si tu vois ce que je veux dire.
En fait, je veux un code propre et sans les noms des attributs... Mais je sais pas si c'est possible :-/
Kati83
Messages postés65Date d'inscriptionmardi 9 mars 2004StatutMembreDernière intervention 3 septembre 2004 16 mars 2004 à 17:53
Désolée, je viens de me rendre compte d'une petite erreur :
à la dernière ligne de code, maliste.Add(Actu); c'est en fait maliste.Add(monobjet);
Ca doit être un tout petit peu plus clair comme ça...
sinon tu crées un constructeur de ta classe MonObjet qui prend en paramètre un tableau. Ainsi tu lui passes le résultat de toute la ligne renvoyée puis c'est dans ton constructeur que tu initialises toutes les variables de ton objet.
-=[JuS]=-
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live