Установка значения DateTimePicker в значение Null

Я не могу установить для набора Datetimepicker значение Null, как это сделать. В моем проекте мое требование-проверить DTPif, это null, для этого мне нужно установить значение Null, код, который я использую:

              {
                dateInsert.Format = DateTimePickerFormat.Custom;
                dateInsert.Text = string.Empty;
               }

4 ответов


использовать следующий код:

dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = " ";

возьмите переменную и установите ее значение при изменении значения DateTimePicker

например

DateTime? myselectedDate = null;

private void DateTimePicker1_ValueChanged(Object sender, EventArgs e) {
   myselectedDate = DateTimePicker1.Value;
}

У меня был подобный вопрос, но я не мог найти ответ, который мне нравился. Однако я нашел подходящее решение. Задайте свойству" ShowCheckBox " для datetimepicker значение true. Это поставит флажок рядом с датой в поле. Затем добавьте следующий код.

if (dateTimePicker1.Checked == false) 
    myVariable = ""; 
else 
    myVariable = dateTimePicker1;

Как и" karthik reddy", отмеченный выше, вам нужно использовать "CustomFormat", однако для записи null в базу данных SQL (например) ваш код должен проверять DateTimePicker, когда он "добавляет" или "обновляет" запись, поэтому вам нужно по крайней мере два фрагмента кода. Где a) "dtp_X" - это элемент управления DateTimePicker, b) "_NewRecord" - это настраиваемый объект, который отправляется обратно на SQL server, c) "TheDateProperty" - это конкретное поле даты или свойство настраиваемого объекта

//Call this when the form Loads 
private void AllowTheDatePickersToBeSetToNothing()      
{
//This let's you set the DatePicker to nothing
dtp_X.CustomFormat = " ";
dtp_X.Format = DateTimePickerFormat.Custom;

}   

// Call this when Uploading or Adding the record (_NewRecord) to an SQL database    
private void Set_The_Field_Value_based_on_the_CustomFormat_of_the_DateTimePickers()
{
if (dtp_X.CustomFormat == " ")
    {
    //the date should be null
    _NewRecord.TheDateProperty = SqlDateTime.Null;
    }
else
    {
    _NewRecord.TheDateProperty = SqlDateTime.Parse(Convert.ToString(dtp_X.Value));
    }

}


//This button resets the Custom Format, so that the user has a way to reset the DateTimePicker Control
private void btn_Reset_dtp_X_Click(object sender, EventArgs e)
{
dtp_X.Format = DateTimePickerFormat.Custom;
dtp_X.CustomFormat = " ";
}