Можно ли вообще сохранить значение 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
Я предполагаю, что вы имеете в виду Windows Forms DateTimePicker, но вам нужно указать. ВСЕГДА предоставляйте теги как для технологии, так и для языка, например Windows Forms, веб-формы или jQuery и т. д.
Если это WinForms, нет абсолютно никаких причин или даже оправданий для преобразования имеющегося у вас значения DateTime в String. Вы получаете его из базы данных как DateTime и помещаете в элемент управления как DateTime, затем вы получаете его обратно из элемента управления как DateTime и отправляете обратно в базу данных как DateTime. Единственное место, где задействован текст, - это когда элемент управления отображает значение для пользователя, поэтому вас не беспокоит, кроме установки соответствующих свойств элемента управления. Свойство Value имеет тип DateTime, поэтому формат не имеет значения.
мне жаль ... и да ... я имею в виду форму окон в vb, net






Если предположить, что вы говорите о 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
Причина, по которой у вас возникла проблема, заключается в том, что вы делаете именно то, что я сказал вам не делать, то есть создаете String. НЕ НАДО создать String. Я добавлю к своему ответу несколько небольших примеров кода.
ты брат ... я понял ... :)
Почему бы не использовать тот же формат для внутренних компонентов средства выбора, который вы используете для базы данных. Это не обязательно должно быть то, что видит конечный пользователь. Переход может быть выполнен в коде приложения или JavaScript.