plusieurs mysqldatareader pour une connexion
bonjour,
j'ai un objet reservation qui contient des données du style Client client,Menu menu etc..
j'effectue une requete sql du type "select * from reservation where..."
Je recupere mes données en faisant
Code:
MySqlDataReader resultat = mysql.DoSelectMultiple(sql);
puis j'initialise mes objets reservations en faisant
Code:
1 2 3 4
| while (resultat.Read())
{
reservations.Add(InitReservation(resultat));
} |
methode InitReservation
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| public static Reservation InitReservation(MySqlDataReader mysqlDataReader)
{
Reservation reservation = new Reservation();
reservation.Id = Convert.ToInt32(mysqlDataReader[0]);
DateTime date = new DateTime();
DateTime.TryParse(mysqlDataReader[1].ToString(), out date);
reservation.DateReservation = date;
reservation.NbPersonnes = Convert.ToInt32(mysqlDataReader[2]);
reservation.ClientRes = ClientService.GetClient(Convert.ToInt32(mysqlDataReader[3]));
reservation.Menu = MenuService.GetMenuByID(Convert.ToInt32(mysqlDataReader[4]));
reservation.Tables = TableService.GetTablesByReservation(reservation.Id);
reservation.Serveurs = ServeurService.GetServeursNbTable(reservation.NbPersonnes);
reservation.Clients = ClientService.GetClientsByReservation(reservation.Id);
return reservation;
} |
la methode ClientService.GetClient(Convert.ToInt32(mysqlDataReader[3])); recupere dans la base de donnée les info du client et donc utilise aussi une connexion mysql , de ce faite j'ai une erreur comme quoi ma connexion est deja ouverte ce qui est normal...
Si je ferme ma connexion mysql avant le while (resultat.Read()) il ferme aussi le mysqlDataReader.. je suis un peu bloqué la...
je voulais eviter de faire une requete sql avec plein de jointure pour recuperer les informations de la reservation..
Merci