2013-09-16 10 views
1

У меня есть выбор времени. Мне нужно извлечь только время от него, чтобы сохранить в базу данных (DateTime столбец моей БД) я пытаюсь получить его через DateTimePicker1.Value.TimeOfDay, но это дает ошибку:Извлечение TimeOfDay из DateTimePicker

Значение типа «System.TimeSpan» не может преобразуется в «Дата?».

+0

который вы используете? – Damith

ответ

0

Если это для нового развития, вы должны использовать либо отдельные колонки date, и time, либо колонку datetime2, за Note here. Поскольку вы сохраняете только время, вероятно, было бы проще всего использовать этот подход.

Однако, чтобы сохранить только временную часть значения DateTime, вам понадобится база Date плюс значение TimeOfDay. Вы можете получить это, взяв DateTimePicker1.Value напрямую или имея постоянный Date, который вы используете в качестве базы. В любом случае вы не можете сохранить TimeOfDay без соответствующего Date в поле SQL datetime.

1

Если у вас есть столбец datetime в базе данных, вы можете сохранить DateTimePicker1.Value, но он также будет содержать дату. Когда вы читаете колонку вы можете получить время в DateTime, используя TimeOfDay свойство

Вы можете сохранить TimeSpan если тип данных столбца time (SQL Server 2008 и выше)

+0

У этого не будет времени, он установит его до полуночи. – Tawnos

+0

@Tawnos ответ обновлен – Damith

-1

Почему бы не преобразовать переменную Date в строку и , то вы можете использовать либо ToShortTimeString() или ToString() в коде перед сохранением его в БД, как:

DateTimePicker1.Value.ToShortTimeString() 

или

DateTimePicker1.Value.TimeOfDay.ToString() 
Смежные вопросы