Goran Bibic Ответов: 2

Настройки по умолчанию, если элемент datetimepicker в SQL столбец значение null


Настройки по умолчанию, если элемент datetimepicker в SQL столбец значение null

Опыт

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

private DateTime emptydate = DateTime.Parse("2018-01-01 00:00:00");



vrijemeodjaveDateTimePicker.Value = string.IsNullOrEmpty(vrijemeodjaveDateTimePicker.Value == emptydate) ? ((object)DBNull.Value : vrijemeodjaveDateTimePicker.Value;

2 Ответов

Рейтинг:
12

Bryian Tan

Основываясь на том, что описано в исходном посте, предположим, что dummyDate-это значение из столбца таблицы базы данных. Вы можете изменить код, чтобы проверить, является ли столбец пустым, если да, используйте emptyDate, чтобы сохранить выбранную дату из элемента управления DateTimePicker.

var dummyDate = DBNull.Value; //DateTime.Parse("2018-02-01 12:30:00");  
  
  vrijemeodjaveDateTimePicker.Value =  
      DBNull.Value.Equals(dummyDate) ? emptydate : vrijemeodjaveDateTimePicker.Value;


Или, может быть , вы хотели спросить, Как установить DateTimePicker в значение по умолчанию, если значение столбца равно NULL, иначе используйте значение из столбца базы данных.

vrijemeodjaveDateTimePicker.Value =
    DBNull.Value.Equals(SomeValueFromDatabaseColumn) ? emptydate : SomeValueFromDatabaseColumn;


Goran Bibic

vrijemeodjaveDateTimePicker.Ценность =
Значение dbnull.Ценность.Equals(SomeValueFromDatabaseColumn) ? emptydate : SomeValueFromDatabaseColumn;

Это решение в порядке вещей...что использовать на конце линии?

,,Некоторое значение из базы данных,, ?

vrijemeodjaveDateTimePicker.Значение = DBNull.Ценность.Равные("2018-01-01 00:00:00") ? emptydate : vrijemeodjaveDateTimePicker.Ценность;

В конце строки вместо vrijemeodjaveDateTimePicker.Ценность;...что положить внутрь?

"dataGridViewTextBoxColumn2"].Value); что-то вроде этого?

Goran Bibic

Уит этот код работает нормально, но когда он равен нулю, используйте фиктивную дату...когда ячейка имеет какое - то значение, мне нужно это значение, но этот код всегда является фиктивной датой

Maciej Los

+5

Рейтинг:
12

GuyThiebaut

Это установит vrijemeodjaveDateTimePicker.Value к DateTime.Parse("2018-01-01 00:00:00") если vrijemeodjaveDateTimePicker.Value равно нулю:

vrijemeodjaveDateTimePicker.Value ?? DateTime.Parse("2018-01-01 00:00:00");


Goran Bibic

vrijemeodjaveDateTimePicker.Значение = vrijemeodjaveDateTimePicker.Ценность ?? значение datetime.Разбор("2018-01-01 00:00:00");

ошибка есть

Описание Кода Серьезности Состояние Подавления Строки Файла Проекта
Ошибка CS0019 оператор '??' не может быть применен к операндам типа 'DateTime' и 'DateTime' prijava_radnika C:\Users\Bibic Goran\Documents\Visual Studio 2015\Projects\prijava_radnika\prijava_radnika\Form1.cs 562 Active

GuyThiebaut

В этом случае вы были неправы, когда заявили в своем вопросе, что значение может быть нулевым.

Возможно, вы захотите попробовать это вместо этого:

vrijemeodjaveDateTimePicker.Значение = vrijemeodjaveDateTimePicker.система ценностей.Датавремя.Параметр minvalue ? значение datetime.Разбор("2018-01-01 00:00:00") : vrijemeodjaveDateTimePicker.Ценность;

Goran Bibic

Я пробую это...но это не значение по умолчанию...выбор изменен с помощью первого значения в datagrid

vrijemeodjaveDateTimePicker.Значение = vrijemeodjaveDateTimePicker.система ценностей.Датавремя.Параметр minvalue ? значение datetime.Разбор("2018-01-01 00:00:00") : vrijemeodjaveDateTimePicker.Ценность;

GuyThiebaut

Я не понимаю, что вы имеете в виду.

Пожалуйста, предоставьте более длинный вопрос с:
(1)то, что вы пробовали.
(2)Каким вы ожидали получить результат.
(3)каков был фактический результат.
(4)Почему фактический результат неверен.

Goran Bibic

Получите значение по умолчанию в datetimepicker, если значение даты из sql равно null...этого я хочу...

значение по умолчанию:
private DateTime emptydate = DateTime.Разбор("2018-01-01 00:00:00");

GuyThiebaut

"Получите значение по умолчанию в datetimepicker, если значение даты из sql равно null...этого я хочу..."

Все еще недостаточно информации.
Как вы получаете значение из sql?
О каком "значении по умолчанию" вы говорите?

Вам действительно нужно научиться задавать вопросы, потому что я не могу видеть то, что у вас на экране, и не могу читать ваши мысли.

Вместо того чтобы просить решить проблему, попробуйте разбить ее на более мелкие части и сначала найдите решения для этих более мелких частей, а затем, если вы не найдете ответов в google, вернитесь к этой форме, чтобы задать конкретные вопросы, а не общие вопросы.

Goran Bibic

Ладно...смотри сюда...

У меня есть полное решение...для рабочих время работы...когда работники приходят в компанию в sql есть имя, фамилия и дата-время, когда они приходят...дата-время, когда заканчивают работу пусто...верно? ... Когда я открываю приложение...изменение выбора datagreed не работает...если иметь некоторое значение из SQL в пустой столбец datetime, когда закончу работу...мне нужно, когда столбец значение null, чтобы показать мне значение по умолчанию я датавремя выбора...Понимаешь? Значение по умолчанию будет 2018-01-01 00:00:00....В datagreed нужно быть null, когда это значение по умолчанию

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();
// строки vrijemeodjave = prijava_radnikaDataGridView.CurrentRow.Ячейки["dataGridViewTextBoxColumn3"].FormattedValue.Метод toString();
// DefaultDate датавремя = Датавремя.Теперь("").Дата;
// строки выбрано = prijava_radnikaDataGridView.CurrentRow.Ячейки["dataGridViewTextBoxColumn3"].значение.Метод toString();

redni_brojTextBox.Текст = redni_broj;
idPrijavaTextBox.Текст = id;
радниккомбобокс.Текст = Радник;
vrijemeprijaveDateTimePicker.Значение = Конвертировать.Объект todatetime(prijava_radnikaDataGridView.SelectedRows[0].Ячейки["dataGridViewTextBoxColumn2"].значение);
// vrijemeodjaveDateTimePicker.Значение = Конвертировать.Объект todatetime(prijava_radnikaDataGridView.SelectedRows[0].Ячейки["dataGridViewTextBoxColumn3"].значение);
// vrijemeodjaveDateTimePicker.Значение = строка.IsNullOrEmpty(vrijemeodjaveDateTimePicker.Value == emptydate) ? ((объект)DBNull.Значение : vrijemeodjaveDateTimePicker.Ценность;
// vrijemeodjaveDateTimePicker.Value = (vrijemeodjaveDateTimePicker.Value == emptydate) ? (объект)DBNull.Значение : vrijemeodjaveDateTimePicker.Ценность;
// vrijemeodjaveDateTimePicker.Значение = Конвертировать.ToDateTime(строка.IsNullOrWhiteSpace(vrijemeodjaveDateTimePicker.Текст) ? emptydate : prijava_radnikaDataGridView.SelectedRows[0].Ячейки["dataGridViewTextBoxColumn3"].значение);
// связь.Parameters.Add("?VrijemeOdjave", MySqlDbType.DateTime).Value = (odjavaProizDatePicker.Value == emptyDate) ? (объект)DBNull.Значение : odjavaProizDatePicker.Ценность;
//строка.IsNullOrWhiteSpace(dateTimePickerToClear.Text)? нуль(типа datetime?)dateTimePickerToClear.Значение;

// vrijemeodjaveDateTimePicker.Значение = Конвертировать.Объект todatetime(выбрано);
// DateTime selectedDateTime = (vrijemeodjave == null) ? emptydate : конвертировать.ToDateTime("2018-01-01 00:00:00");

vrijemeodjaveDateTimePicker.Значение = vrijemeodjaveDateTimePicker.система ценностей.Датавремя.Параметр minvalue ? значение datetime.Разбор("2018-01-01 00:00:00") : vrijemeodjaveDateTimePicker.Ценность;

}
}

Goran Bibic

Описание Кода Серьезности Состояние Подавления Строки Файла Проекта
Ошибка CS1525 недопустимое выражение term ';' prijava_radnika C:\Users\Bibic Goran\Documents\Visual Studio 2015\Projects\prijava_radnika\prijava_radnika\Form1.cs 572 Active
Синтаксическая ошибка ошибка CS1003, ':' ожидается prijava_radnika C:\Users\Bibic документы Горан\\визуальной студии 2015\проекты\prijava_radnika\prijava_radnika\форму form1.в CS 572 активный
Ошибка CS1002 ; ожидается prijava_radnika C:\Users\Bibic документы Горан\\визуальной студии 2015\проекты\prijava_radnika\prijava_radnika\форму form1.в CS 572 активный
Ошибка CS1513 } ожидаемый prijava_radnika C:\Users\Bibic Goran\Documents\Visual Studio 2015\Projects\prijava_radnika\prijava_radnika\Form1.cs 572 Active
Ошибка CS0201 только присваивание, вызов, инкремент, декремент и новые объектные выражения могут быть использованы в качестве оператора prijava_radnika C:\Users\Bibic Goran\Documents\Visual Studio 2015\Projects\prijava_radnika\prijava_radnika\Form1.cs 572 Active

GuyThiebaut

Я изначально вставил опечатку - попробуйте то, что есть в комментарии выше, а также попытайтесь понять, что он делает.
Прочтите о том, что такое тернарное число.