Если вы говорите о Windows Forms DateTimePicker
, ничего не поделаешь.Свойства Format
и CustomFormat
элемента управления определяют только способ отображения данных.Свойство Value
по-прежнему имеет тип DateTime
и не имеет формата.Это просто число.Когда вы сохраняете в базу данных, вы сохраняете это значение DateTime
, и оно получает - или, по крайней мере, оно должно - храниться в базе данных в своем родном типе данных даты / времени, поэтому форматирование снова не является проблемой.В MySQL, как правило, вы должны использовать тип данных DATE
для дат без временной части или DATETIME
для значений с датой и временем.Ни в коем случае вы не должны преобразовывать значения в текст самостоятельно во всем этом процессе.Эта часть обрабатывается элементом управления DateTimePicker
.
Если вы используете соответствующий тип данных в базе данных в том виде, как вы это делаете, вы получите DateTime
из базы данных.Вы просто присваиваете это непосредственно свойству значения, например
myDateTimePicker.Value = CDate(myDataRow("MyColumn"))
или:
myDateTimePicker.Value = myDataReader.GetDateTime(myDataReader.GetOrdinal("MyColumn"))
Чтобы сохранить данные обратно в базу данных, вы просто создаете параметр в своей команде втак же, как и для любых других данных, затем присвойте DateTime
Value
этого параметра, например,
myCommand.Parameters.Add("@MyColumn", MySqlDbType.DateTime).Value = myDateTimePicker.Value
Если вы не знаете, как работают параметры, посмотрите это сейчас какэто единственный приемлемый способ вставки переменных в код SQL.