Apache изначально работает на AWS Cloud9. Чтобы заставить Apache работать с системой предварительного просмотра Cloud9 IDE, вам необходимо:
Подробное пошаговое руководство на этой странице
Просто необходимо бросить его в DateTime
if ((DateTime)(resultsGrid.CurrentRow.Cells["DateOfBirth"].Value) == DateTime.MinValue)
{
// Set cell value to ""
}
Я обнаружил почему DateTime.MinValue
отображался!
Эта строка в разделе форматирования ячейки заставила MinValue "01/01/0001" отображаться:
dateOfBirth.DefaultCellStyle.Format = "MM/dd/yyyy";
Без этой строки, поля Date of Birth в моем datagridview
оставлен незаполненный.
Вершина Barbaros все еще корректна о том, что я пытался сделать в то время. Спасибо все!
В то время как это может быть довольно просто для достижения преобразования, Вам нужно (см., что превосходные ответы предшествуют моему), я чувствую, что необходимо идеально заменить весь DateTime. MinValue оценивает в этом конкретном столбце в базе данных с NULL
. Это правильно представило бы фактическое отсутствие данных в этом положении. В настоящее время Ваша база данных содержит неправильные данные, и Вы пытаетесь выполнить последующую обработку данные для дисплея.
Следовательно, Вы смогли бы обработать дисплей данных в Вашем GridView с помощью EmptyDataText
или NullDisplayText
свойства для обеспечения соответствующего рендеринга.
if (yourDateOfBirth != null)
{
Convert.ToDate(yourDateOfBirth) == DateTime.MinValue
}
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, но он кажется, что Вы имеете верное представление.
Уже существуют ответы, которые должны достигнуть того, что Вы хотите; но интересно, почему Вы не помещаете ПУСТОЙ УКАЗАТЕЛЬ в базу данных для запуска с? В sqlite3 "дата и время" является более или менее просто строкой, (нет ничего специального о столбце даты и времени, так как sqlite3 - все о просто привязке типа, не вводят привязку), таким образом, Вы просто вставляете ПУСТОЙ УКАЗАТЕЛЬ в тот столбец. И в случае, если Вы хотите иметь MinValue даты и времени, когда Вы запрашиваете, можно легко выполнить запрос как
select coalesce(your_datetime_column,'01/01/0001') from your_table
можно снять объект в качестве объекта 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