Datetime в DateTimePicker VB.Net в длинном формате и наоборот

Можно ли вообще сохранить значение DateTimePicker (длинный формат) в datetime (базе данных). Затем сделайте обратное от datetime (datebase), установленного на DateTimePicker. У нас есть для этого более простой код?

Я использую MySQL в VB.Net Windows Form.

вот мой код в vb.net:

'" & date1.Value.ToString("yyyy-MM-dd") & " " & date1_time.Value.ToString("hh:mm:ss") & "." & Now.Millisecond & "'

в MySQL: date1 datetime

Почему бы не использовать тот же формат для внутренних компонентов средства выбора, который вы используете для базы данных. Это не обязательно должно быть то, что видит конечный пользователь. Переход может быть выполнен в коде приложения или JavaScript.

Strawberry 25.09.2018 08:45

Я предполагаю, что вы имеете в виду Windows Forms DateTimePicker, но вам нужно указать. ВСЕГДА предоставляйте теги как для технологии, так и для языка, например Windows Forms, веб-формы или jQuery и т. д.

jmcilhinney 25.09.2018 08:54

Если это WinForms, нет абсолютно никаких причин или даже оправданий для преобразования имеющегося у вас значения DateTime в String. Вы получаете его из базы данных как DateTime и помещаете в элемент управления как DateTime, затем вы получаете его обратно из элемента управления как DateTime и отправляете обратно в базу данных как DateTime. Единственное место, где задействован текст, - это когда элемент управления отображает значение для пользователя, поэтому вас не беспокоит, кроме установки соответствующих свойств элемента управления. Свойство Value имеет тип DateTime, поэтому формат не имеет значения.

jmcilhinney 25.09.2018 08:57

мне жаль ... и да ... я имею в виду форму окон в vb, net

GPF 25.09.2018 09:06
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
4
1 342
1

Ответы 1

Если предположить, что вы говорите о Windows Forms DateTimePicker, тут ничего не поделаешь. Свойства Format и CustomFormat элемента управления определяют только способ отображения данных. Свойство Value по-прежнему имеет тип DateTime и не имеет формата. Это просто число. Когда вы сохраняете в базе данных, вы сохраняете это значение DateTime, и оно получает - или, по крайней мере, должно быть - сохранено в базе данных в своем собственном типе данных даты / времени, так что формат снова не является проблемой. В MySQL обычно следует использовать тип данных DATE для дат без временной части или DATETIME для значений с датой и временем. Ни в коем случае вам не следует преобразовывать значения в текст самостоятельно в течение всего этого процесса. Эта часть обрабатывается элементом управления DateTimePicker.

Если вы используете соответствующий тип данных в базе данных, как это звучит, как вы, то вы получите DateTime из базы данных. Вы просто назначаете это непосредственно свойству value, например

myDateTimePicker.Value = CDate(myDataRow("MyColumn"))

или:

myDateTimePicker.Value = myDataReader.GetDateTime(myDataReader.GetOrdinal("MyColumn"))

Чтобы сохранить данные обратно в базу данных, вы просто создаете параметр в своей команде так же, как и для любых других данных, а затем назначаете DateTime на Value этого параметра, например

myCommand.Parameters.Add("@MyColumn", MySqlDbType.DateTime).Value = myDateTimePicker.Value

Если вы не знаете, как работают параметры, поищите их сейчас, так как это ЕДИНСТВЕННЫЙ приемлемый способ вставки переменных в код SQL.

да .... я имею в виду форму окна ... у нас есть более простой способ сохранить дату в базе данных, а затем сделать наоборот ... у меня возникли проблемы, установив datetime на datetimepicker

GPF 25.09.2018 09:05

Причина, по которой у вас возникла проблема, заключается в том, что вы делаете именно то, что я сказал вам не делать, то есть создаете String. НЕ НАДО создать String. Я добавлю к своему ответу несколько небольших примеров кода.

jmcilhinney 25.09.2018 09:49

ты брат ... я понял ... :)

GPF 10.10.2018 04:13

Другие вопросы по теме