Замена DateTime. MinValue в DataGridView

Apache изначально работает на AWS Cloud9. Чтобы заставить Apache работать с системой предварительного просмотра Cloud9 IDE, вам необходимо:

Подробное пошаговое руководство на этой странице

7
задан Jared Harley 20 February 2009 в 06:35
поделиться

7 ответов

Просто необходимо бросить его в DateTime

if ((DateTime)(resultsGrid.CurrentRow.Cells["DateOfBirth"].Value) == DateTime.MinValue)
            {
                 // Set cell value to ""
            }
5
ответ дан 6 December 2019 в 19:42
поделиться

Я обнаружил почему DateTime.MinValue отображался!

Эта строка в разделе форматирования ячейки заставила MinValue "01/01/0001" отображаться:

dateOfBirth.DefaultCellStyle.Format = "MM/dd/yyyy";

Без этой строки, поля Date of Birth в моем datagridview оставлен незаполненный.

Вершина Barbaros все еще корректна о том, что я пытался сделать в то время. Спасибо все!

4
ответ дан 6 December 2019 в 19:42
поделиться

В то время как это может быть довольно просто для достижения преобразования, Вам нужно (см., что превосходные ответы предшествуют моему), я чувствую, что необходимо идеально заменить весь DateTime. MinValue оценивает в этом конкретном столбце в базе данных с NULL. Это правильно представило бы фактическое отсутствие данных в этом положении. В настоящее время Ваша база данных содержит неправильные данные, и Вы пытаетесь выполнить последующую обработку данные для дисплея.

Следовательно, Вы смогли бы обработать дисплей данных в Вашем GridView с помощью EmptyDataText или NullDisplayText свойства для обеспечения соответствующего рендеринга.

2
ответ дан 6 December 2019 в 19:42
поделиться
if (yourDateOfBirth != null)
{
    Convert.ToDate(yourDateOfBirth) == DateTime.MinValue
}
0
ответ дан 6 December 2019 в 19:42
поделиться
private void resultsGrid_DateFormatting(object sender, System.Windows.Forms.DataGridViewCellFormattingEventArgs e)
{
    if(resultsGrid.Columns[e.ColumnIndex].Name.Equals("DateOfBirth"))
{
    if ((string)resultsGrid.CurrentRow.Cells["DateOfBirth"].Value == DateTime.MinValue.ToString())
    {
         // Set cell value to ""
    }
}

}

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

0
ответ дан 6 December 2019 в 19:42
поделиться

Уже существуют ответы, которые должны достигнуть того, что Вы хотите; но интересно, почему Вы не помещаете ПУСТОЙ УКАЗАТЕЛЬ в базу данных для запуска с? В sqlite3 "дата и время" является более или менее просто строкой, (нет ничего специального о столбце даты и времени, так как sqlite3 - все о просто привязке типа, не вводят привязку), таким образом, Вы просто вставляете ПУСТОЙ УКАЗАТЕЛЬ в тот столбец. И в случае, если Вы хотите иметь MinValue даты и времени, когда Вы запрашиваете, можно легко выполнить запрос как

select coalesce(your_datetime_column,'01/01/0001') from your_table
0
ответ дан 6 December 2019 в 19:42
поделиться

можно снять объект в качестве объекта DateTime:

//create a nullable intermediate variable
System.DateTime? dtCellValue = resultsGrid.CurrentRow.Cells["DateOfBirth"].Value as System.DateTime?;

//if this cell has been set to String.Emtpy the cast will fail
//so ensure the intermediate variable isn't null
if ( dtCellValue.HasValue && dtCellValue == System.DateTime.MinValue )
//set cell value appropriately
0
ответ дан 6 December 2019 в 19:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: