Goran Bibic Ответов: 1

Выбор изменился не работает


SELECTION CHANGED IF COLUMN VALUE NULL TO DATETIMEPICKER?


Вот в чем проблема...что делать, если столбец с datetime в datagrid пуст...

Wheh - это колонка, заполненная всем, что работает нормально...

if (prijava_radnikaDataGridView.SelectedRows.Count > 0 && vrijemeprijaveDateTimePicker == null && vrijemeodjaveDateTimePicker == null) 


Что я уже пробовал:

<pre>// if (prijava_radnikaDataGridView.SelectedRows.Count > 0 ) // make sure user select at least 1 row 
              // if (prijava_radnikaDataGridView.SelectedRows.Count > 0 && vrijemeprijaveDateTimePicker == null && vrijemeodjaveDateTimePicker == null) // make sure user select at least 1 row 

            if (prijava_radnikaDataGridView.SelectedRows.Count > 0 && vrijemeodjaveDateTimePicker == null) // make sure user select at least 1 row 
            {

                string id = prijava_radnikaDataGridView.CurrentRow.Cells["dataGridViewTextBoxColumn1"].FormattedValue.ToString();
               string radnik = prijava_radnikaDataGridView.CurrentRow.Cells["dataGridViewTextBoxColumn9"].FormattedValue.ToString();
                string redni_broj = prijava_radnikaDataGridView.CurrentRow.Cells["redni_broj"].FormattedValue.ToString();
                
                

                radnikComboBox.Text = radnik;
                vrijemeprijaveDateTimePicker.Value = Convert.ToDateTime(prijava_radnikaDataGridView.SelectedRows[0].Cells["dataGridViewTextBoxColumn2"].Value);
               vrijemeodjaveDateTimePicker.Value = Convert.ToDateTime(prijava_radnikaDataGridView.SelectedRows[0].Cells["dataGridViewTextBoxColumn3"].Value);
                redni_brojTextBox.Text = redni_broj;
                idPrijavaTextBox.Text = id;
                
            }

OriginalGriff

И что же?
Что же происходит?
Что вы пытались выяснить, почему?

"Это не работает", вероятно, самый бесполезный отчет о проблеме, который мы получаем - и мы получаем его много. Она ничего не говорит нам о том, что происходит или когда это происходит.
Итак, расскажите нам, что он делает, чего вы не ожидали, или не делает, что вы сделали.
Расскажите нам, что вы сделали, чтобы это произошло.
Сообщайте нам о любых сообщениях об ошибках.
Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

Goran Bibic

Время прибытия сотрудников в компанию является "чувствительным ко времени" столбцом в таблице. все нормально. Имя сотрудника, время прибытия в компанию-все в порядке ... Пока сотрудник на фирме, время выезда пустое. Когда время выезда пустое, измененный выбор не работает. Когда работник вынимает время выезда, они заносятся в таблицу, и все работает отлично. Проблема в том, что когда время выхода из системы равно нулю, измененный выбор не работает.

Goran Bibic

Как настроить выбор, измененный для datimepicker, если значение столбца равно null в datagrid?

#realJSOP

Когда кто-то говорит: "это не работает", мы должны ответить: "потому что вы не делаете это правильно". Тогда качество ответа будет соответствовать качеству вопроса.

OriginalGriff

Иногда это так заманчиво... :вздох:

Goran Bibic

Нет ответа?

Goran Bibic

Нет ответа?

1 Ответов

Рейтинг:
1

#realJSOP

Я собираюсь угадать, что не работает. Значение ячейки равно null, и вы не можете преобразовать нулевое значение в a DateTime Итак, вы должны как-то объяснить это.

// define a default datetime value. I chose to use DateTime.Now, but 
// you can create any default date value you want, such as new DateTime(0)
DateTime defaultDate = DateTime.Now().Date;
// store the Value into an object variable.
object selectedfield = prijava_radnikaDataGridView.SelectedRows[0].Cells["dataGridViewTextBoxColumn2"].Value;
// if the value is null, use the default datetime specified above, otherwise convert the value to a datetime
DateTime selectedDateTime = (selectedfield == null) ? defaultDate : Convert.ToDateTime(value);


Теперь вы можете делать с датой все, что захотите.

При желании вы можете установить значение null DateTimes к допустимому значению по умолчанию DateTime на заднем конце при извлечении данных из источника данных (и перед привязкой коллекции к элементу управления).


Goran Bibic

частная prijava_radnikaDataGridView_Selectionchanged недействительным(объект отправителя, EventArgs в электронной)
{
// если (prijava_radnikaDataGridView.Избранные воробьи.Count > 0 )
//если (prijava_radnikaDataGridView.Избранные воробьи.Граф и gt; 0 &&усилителя; vrijemeodjaveDateTimePicker == нуль)
если (prijava_radnikaDataGridView.Избранные воробьи.Count > 0 )

{

строка идентификатор = prijava_radnikaDataGridView.CurrentRow.Ячейки["dataGridViewTextBoxColumn1"].FormattedValue.Метод toString();
строка radnik = prijava_radnikaDataGridView.CurrentRow.Ячейки["dataGridViewTextBoxColumn9"].FormattedValue.Метод toString();
строка redni_broj = prijava_radnikaDataGridView.CurrentRow.Клетки["redni_broj"].FormattedValue.Метод toString();



радниккомбобокс.Текст = Радник;
vrijemeprijaveDateTimePicker.Значение = Конвертировать.Объект todatetime(prijava_radnikaDataGridView.SelectedRows[0].Ячейки["dataGridViewTextBoxColumn2"].значение);
vrijemeodjaveDateTimePicker.Значение = Конвертировать.Объект todatetime(prijava_radnikaDataGridView.SelectedRows[0].Ячейки["dataGridViewTextBoxColumn3"].значение);
// vrijemeodjaveDateTimePicker.Значение = Конвертировать.ToDateTime((vrijemeodjaveDateTimePicker.Value == emptydate) ? (объект)DBNull.Значение:prijava_radnikaDataGridView.SelectedRows[0].Ячейки["dataGridViewTextBoxColumn3"].значение);
//vrijemeodjaveDateTimePicker.Значение = emptydate;
// vrijemeodjaveDateTimePicker.Значение = Конвертировать.ToDateTime(строка.IsNullOrWhiteSpace(vrijemeodjaveDateTimePicker.Текст) ? emptydate : prijava_radnikaDataGridView.SelectedRows[0].Ячейки["dataGridViewTextBoxColumn3"].значение);

//строка.IsNullOrWhiteSpace(dateTimePickerToClear.Text)? нуль(типа datetime?)dateTimePickerToClear.Значение;
redni_brojTextBox.Текст = redni_broj;
idPrijavaTextBox.Текст = id;

DateTime selectedDateTime = (vrijemeodjaveDateTimePicker == null) ? emptydate : конвертировать.ToDateTime("2018-01-01 00:00:00");


}
}

Goran Bibic

Не работать...Я не могу запустить приложение...выбор изменился, а не переосмыслить пустое поле... :-( /// один месяц я могу решить эту проблему...Я могу верить. :-(

Goran Bibic

Выбор изменен не работает, если есть одно нулевое поле в столбце datetime. Имя столбца-vrijemeodjave...его значение-от vrijemeodjaveDateTimePicker