public List <Schedule> ScheduleList(string from, string to, int sortByIndex, string outbound, string flightNumber) { string[] sortBy = { "Schedules.Date, Schedules.Time", "Schedules.EconomyPrice", "Schedules.Confirmed" }; List <Schedule> Schedules = new List <Schedule>(); SqlDataReader reader = null; try { execution.OpenConnection("Session2"); string sql = "select Schedules.ID, Schedules.Date, Schedules.Time, a1.IATACode as 'From', a2.IATACode as 'To', Schedules.FlightNumber, Aircrafts.Name as 'Aircraft', Schedules.EconomyPrice, Schedules.Confirmed from Schedules join Routes on Schedules.RouteID = Routes.ID join Airports a1 on a1.ID = Routes.DepartureAirportID join Airports a2 on a2.ID = Routes.ArrivalAirportID join Aircrafts on Schedules.AircraftID = Aircrafts.ID "; string strCondition = StringHandle.GetConditionOfQuery(from, to, outbound, flightNumber); string strSort = " order by " + sortBy[sortByIndex] + " desc"; reader = execution.Reader(sql + strCondition + strSort); while (reader.Read()) { Schedule schedule = new Schedule(); schedule.ID = (int)reader[0]; schedule.Date = (DateTime)reader[1]; schedule.Time = (TimeSpan)reader[2]; schedule.IATACodeFrom = reader[3] + ""; schedule.IATACodeTo = reader[4] + ""; schedule.FlightNumber = reader[5] + ""; schedule.Aircraft = reader[6] + ""; schedule.EconomyPrice = reader.GetSqlMoney(7).ToInt32(); schedule.Confirmed = (bool)reader[8]; Schedules.Add(schedule); } } catch (Exception ex) { throw ex; } finally { reader.Close(); } return(Schedules); }