Pracuję nad aplikacją rekordu nazwy, a informacje są przechowywane w bazie danych SQLite. Wszystkie kolumny w bazie danych są typu TEKST, z wyjątkiem kolumny daty urodzenia, która jest DATETIME. Oryginalna baza danych programu Access, którą przesłałem do bazy danych SQLite, zezwala na wartości null dla daty urodzenia, więc po skopiowaniu ustawiam wszystkie wartości null na DateTime.MinValue.Wymiana DateTime.MinValue w DataGridView
w mojej aplikacji, data urodzenia kolumnie jest sformatowany tak:
DataGridViewTextBoxColumn dateOfBirth = new DataGridViewTextBoxColumn();
dateOfBirth.HeaderText = "DOB";
dateOfBirth.DataPropertyName = "DateOfBirth";
dateOfBirth.Width = 75;
dateOfBirth.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
dateOfBirth.DefaultCellStyle.Format = "MM/dd/yyyy";
Moim problemem jest to, że wiersze tam, gdzie nie jest data urodzenia, baza danych ma DateTime.MinValue, który wyświetla w moim DataGridView jako 01/01/0001.
Szukam sposobu zastąpienia 01/01/0001 pusty ciąg ("") w moim DataGridView.
private void resultsGrid_DateFormatting(object sender, System.Windows.Forms.DataGridViewCellFormattingEventArgs e)
{
if(resultsGrid.Columns[e.ColumnIndex].Name.Equals("DateOfBirth"))
{
if ((DateTime)(resultsGrid.CurrentRow.Cells["DateOfBirth"].Value) == DateTime.MinValue)
{
// Set cell value to ""
}
}
}
Ktoś ma pomysł, jak mogę zastąpić DateTime.MinValue w moim DataGridView z pustym ciągiem? Dzięki!
Edytuj: Przesyłanie wartości komórki za pomocą funkcji DateTime pozwala na wykonanie instrukcji if, ale nadal nie jestem w stanie znaleźć kodu, który zastąpiłby wartości MinValue pustym łańcuchem.
Podobny Q & A zostały zamieszczone na tym stanowisku: http://stackoverflow.com/a/36492728/909689 –