Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2016, 19:45   #1
SaHaD
 
Регистрация: 16.09.2016
Сообщений: 3
По умолчанию Помогите отсортировать данные по дате

Здравствуйте. Есть такой вопрос.
У меня есть лист с данными
Код:
List<Shedule> shedules = new List<Shedule>();
Вот я его получаю с базы данных
Код:
string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True";
            
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                string sql = "SELECT * FROM Shedule";
                SqlCommand command = new SqlCommand(sql, connection);
                SqlDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    int id_klass = reader.GetInt32(0);
                    string date = reader.GetDateTime(1).ToShortDateString();
                    string id_subject = reader.GetString(2);
                    string id_location = reader.GetString(3);

                    Shedule shedule = new Shedule(id_klass, date, id_subject, id_location);
                    shedules.Add(shedule);
                }
            }
Как мене сделать еще 3 листа чтоб было по неделям.
Лист прошедшая неделя.
Лист настоящая неделя.
Лист след. неделя.
Помогите пожалуйста. очень надо

Последний раз редактировалось SaHaD; 16.09.2016 в 19:50.
SaHaD вне форума Ответить с цитированием
Старый 16.09.2016, 20:37   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

заведите в свой объект нормальную дату, а не строкой.
потом когда дата у вас нормальная.
Код:
enum WeekPosition
{
  Offside,
  Previous,
  Current,
  Next
}

WeekPosition CalcWeekPosition(DateTime date)
{
  date=date.Date;//на всякий
  if(date >= DateTime.Now.Date.AddDays(-10) && date <= DateTime.Now.Date.AddDays(-4))
    return WeekPosition.Previous;//прошлая неделя
  if(date >= DateTime.Now.Date.AddDays(-3) && date <= DateTime.Now.Date.AddDays(3))
    return WeekPosition.Current;//эта неделя
  if(date >= DateTime.Now.Date.AddDays(3) && date <= DateTime.Now.Date.AddDays(10))
    return WeekPosition.Next;//след неделя
  return WeekPosition.Offside;
}
Код:
var group =shedules.GroupBy(s=>CalcWeekPosition(s.Date)).Where(g=>g.Key!=WeekPosition.Offside).ToDictionary(g=>g.Key,g=>g.ToList());
List<Shedule> prevWeek;
if(!group.TryGetValue(WeekPosition.Previous, out prevWeek))
  prevWeek=new List<Shedule>();
List<Shedule> curWeek;
if(!group.TryGetValue(WeekPosition.Current, out curWeek))
  curWeek=new List<Shedule>();
List<Shedule> nextWeek;
if(!group.TryGetValue(WeekPosition.Next, out nextWeek))
  nextWeek=new List<Shedule>();
как-то так.
(не проверял)

а вообще самое простое, можно в лоб сделать к базе три запроса.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.09.2016, 21:29   #3
SaHaD
 
Регистрация: 16.09.2016
Сообщений: 3
По умолчанию

Спасибо большое. В понедельник попробую. А вопрос как отправить в лоб базе три запроса
SaHaD вне форума Ответить с цитированием
Старый 16.09.2016, 21:38   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Код:
SELECT * FROM Shedule WHERE date ........
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
макросом отсортировать данные по столбцу mariyavaryanitsa Microsoft Office Excel 4 23.10.2012 20:24
Как отсортировать данные Radzhab Microsoft Office Excel 7 13.08.2012 18:17
Как отсортировать данные начиная с восьмого разряда? Дмитрий177 Microsoft Office Excel 7 29.01.2011 04:43
Проанализировать данные по дате asas2010 Microsoft Office Excel 1 05.01.2011 12:29