none
Найти следующую строку через Linq запрос RRS feed

  • Вопрос

  • база SQLite

    разбивка колонок следующая

    id(INTEGER) day(INTEGER) mounth(INTEGER) name(TEXT) - пусть так. Конвертировать данные по юлианскому и от секунд показалось сложнее. Но вопрос не в этом. Если оставить схему базы в этом виде, как она есть

    можно ли найти следующую строку от найденной.

    т.е. сейчас

    d1 = datetime.now.day;
    mq = datetime.now.mounth;
    
    

    и в запросе я ищу Name по сегодняшнему дню.

    ...
    var d = from c in table<...>()
    where c.day == d1 && c.mounth=m1
    select c.name;
    

    всё хорошо. Поиск идёт великолепно. А вопрос вот в чём, можно ли найти завтрашний день (НУ Т,Е, ИМЕННО СЛЕДУЮЩУЮ СТРОКУ  за сегодняшней строкой)

    проблема в чём. если сделать d1+1 то если сегодня 31 число то d1+1 не первый день следующего месяца, а первый день текущего.

    если искать по первой колонке ID то бывает случай что строка удалялась и id (автоинкремент) идёт не последовательно. Может перескакивать например id 34 а потом 36. И просто плюсовать к текущему id +1 тоже не получается.

    Можно ли найти что-то навроде Row.Next или Next.Row или что-то в этом роде?


    Спасибо

    23 февраля 2013 г. 8:08

Ответы

  • А что мешает искать так:

                var currentDate = DateTime.Now;
                var nextDayDate = currentDate.AddDays(1);
                var d = nextDayDate.Day;
                var m = nextDayDate.Month;
                var d = from c in table<...>() where c.day == d && c.mounth=m select c.name;

    • Помечено в качестве ответа developers_s 23 февраля 2013 г. 8:52
    23 февраля 2013 г. 8:16

Все ответы

  • А что мешает искать так:

                var currentDate = DateTime.Now;
                var nextDayDate = currentDate.AddDays(1);
                var d = nextDayDate.Day;
                var m = nextDayDate.Month;
                var d = from c in table<...>() where c.day == d && c.mounth=m select c.name;

    • Помечено в качестве ответа developers_s 23 февраля 2013 г. 8:52
    23 февраля 2013 г. 8:16
  • А если у вас 31 деакбря? То d1 + 1 - это уже другой год! Самый лучшый вариант - сделать хранение даты одним полем, иначе наживете себе проблем на одно место. Ну а если нет возможности или не хотите, то скорее всего придется заморачиваться с группировками и сортировками при выборе дат.
    23 февраля 2013 г. 8:18