|
Проблема с датой
|
|||
---|---|---|---|
#18+
Вот пытаюсь передать в хранимую процедуру 2 параметра "дата начала" и "дата окончания" пользователь выбирает период из двох dateTimePicker, он выбирает дату а я программно добавляю время пример public Statistics GetStatistic(DateTime ds, DateTime de) { //.... AddParameter(new DbParameter("@dateStart", DateTime.Parse(ds.ToString("d") + " 0:00:00"), SqlDbType.DateTime)); AddParameter(new DbParameter("@dateEnd", DateTime.Parse(de.ToString("d") + " 59:59:59"), SqlDbType.DateTime)); //.... } но вываливается ошибка DateTime, представленный строкой, не поддерживается в календаре System.Globalization.GregorianCalendar. Давно не писал на WinForms и забыл как можна передать переметр в хранимую процедуру или где в конфигурации выставить System.Globalization.GregorianCalendar? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2013, 17:04 |
|
Проблема с датой
|
|||
---|---|---|---|
#18+
VIT2708, Sorry вопрос снимается, протупил..... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2013, 17:08 |
|
Проблема с датой
|
|||
---|---|---|---|
#18+
> Давно не писал на WinForms и забыл как можна передать переметр в хранимую процедуру /me думает: девичья память ? _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2013, 17:13 |
|
Проблема с датой
|
|||
---|---|---|---|
#18+
VIT2708, преобразовывать дату в строку плохая идея. С датой надо всегда работать как с датой. Поэтому: Код: c# 1. 2.
вместо new DateTime(de.Year, de.Month, de.Day, 23, 59, 59) можно также написать: Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2013, 17:34 |
|
Проблема с датой
|
|||
---|---|---|---|
#18+
bazileVIT2708, преобразовывать дату в строку плохая идея. С датой надо всегда работать как с датой. Дык, Ex_Soft/me думает: девичья память ? и ЭстЪ топик VIT2708 _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2013, 17:52 |
|
Проблема с датой
|
|||
---|---|---|---|
#18+
Ex_SoftДык, .. и ЭстЪ топик VIT2708 Я заметил, но в данном случае речь идет о другом. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2013, 18:08 |
|
Проблема с датой
|
|||
---|---|---|---|
#18+
bazileVIT2708, преобразовывать дату в строку плохая идея. С датой надо всегда работать как с датой. Поэтому: Код: c# 1. 2.
вместо new DateTime(de.Year, de.Month, de.Day, 23, 59, 59) можно также написать: Код: c# 1. 2.
Так можна же еще проверить правильность формата через DateTime.TryParse(.....); ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 18:32 |
|
Проблема с датой
|
|||
---|---|---|---|
#18+
VIT2708, в данном случае ничего проверять не нужно. Суть в том, что код вида - DateTime.Parse(ds.ToString("d") + " 0:00:00") - неэффективен и легко поддается улучшению. Давай разберем его по шагам: 1) Мы берем значение DateTime (value тип) из стека, превращаем его в строку (ссылочный тип); 2) Склеиваем его со строковой константой получая новую строку; 3) Преобразуем строку в дату. Таким образом ради простой операции получения даты начала и конца дня мы два раза выделяем память на куче. Есть простой способ этого избежать. Он приведен выше вместе с рекомендацией работать с датой как с датой. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 20:11 |
|
|
start [/forum/topic.php?fid=20&msg=38263370&tid=1404658]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 328ms |
total: | 498ms |
0 / 0 |