Takfarinas0113
Messages postés1Date d'inscriptionmardi 26 décembre 2006StatutMembreDernière intervention 4 janvier 2007
-
4 janv. 2007 à 03:35
aogie
Messages postés108Date d'inscriptionvendredi 11 juillet 2003StatutMembreDernière intervention27 novembre 2007
-
6 janv. 2007 à 17:44
Bonsoir à tous,
Je débute en programation et je veux faire un programme de géstion d'hotel.
Un hotel contient une arraylist de chambre(roomlist) qui elles même contiennent une arrayList de clients (custlist), rien de trés compliqué . Puis je sérialise l'hotel afin stocker les données dans un fichier.
Tous cela marche trés bien dans ma tête mais quand je le code sa se complique...
Je voudrai pouvoir visualiser roomlist dans une liste.
Dans ma fenêtre gestion de l'hotel j'ai crée une liste (graphique) dans lasquelle j'aimerai répertorier les chambres grâce a leurs numeros, au moment même ou je les ajoutes. J'ajoute une chambre = je la voit dans la liste et je la sérialise.
J'ai fait des recherches qui m'ont amené au DataBindings.
Au moment du clik pour valider l'ajout d'une chambre je fait ceçi :
private void Ajouter_Click(object sender, EventArgs e)
{
Room r1;
Hotel h1;
h1 = new Hotel("Croisette");
r1 = new Room(RNumber.Text, NBed.Text, PrixBase.Text, SalledeBain.Text);
r1.SetBathroomtype();
h1.addRoom(r1); // içi j'ajout ma chambre à l'arraylist de l'hotel
string ficname = @"D:\Documents and Settings\Takfarinas\Bureau\EFREI\Informatique\C#\TP1-C#\Gestion_Hotel\Sauvegarde\test.txt";
SaveObject so = new SaveObject();
so.SerializeObject(h1, ficname);
Rooms.DataBindings.Add("Text", h1.roomlist, "roomNumber");
}
seulement à l'éxecution de la dérnière ligne j'obtient le message suivant :
Impossible d'effectuer une liaison à la propriété ou la colonne roomNumber sur le DataSource.
Nom du paramètre : dataMember
Je suis désolé de la façon un peut brouillon de présenter mon problème, et j'aimerai vraiment que quelqu'un puisse me donner quelques conseils svp...
Merçi.
aogie
Messages postés108Date d'inscriptionvendredi 11 juillet 2003StatutMembreDernière intervention27 novembre 2007 6 janv. 2007 à 17:44
Bonjour,
Tu dois créer une classe "Client" et une classe "Room", avec une liste de "Client". (Toutes deux avec l'attribut "Serializable", si tu as besoin d'une sérialisation bien sûr).
Ensuite, il faut surcharger la méthode "ToString()" pour chacune des classes :
- la classe "Client" faisant un résumé de lui-même.
- la classe "Room" faisant un résumé de tous ses clients, en bouclant sur sa liste avec appel de la méthode "ToString", sur chacun des clients.
Effectuer la même chose avec la classe "Hostel" concernant la liste de ses "Room".
Visualisation avec un contrôle ListBox :
lb.DataSource = <RoomList>;
Les éléments (Items) étant de type objet, la liste va créer autant d'éléments que d'objets "Room", puis appeler la méthode "ToString" sur chacun des objets, pour leur représentation graphique.