Visualizza solo le righe nella prima colonna (indice 0) in cui le celle corrispondono a una data specifica

Come hidei tutte le righe sul mio dataGridView che non corrispondono alla data di “27/11/2013”. Attualmente il codice sottostante nasconde tutte le mie righe …

private void viewOverdue_Click(object sender, EventArgs e) { CurrencyManager manager = (CurrencyManager)BindingContext[dataGridView1.DataSource]; manager.SuspendBinding(); foreach (DataGridViewRow row in dataGridView1.Rows) { if (!string.Equals(row.Cells[0].Value.ToString(), "27/11/2013", StringComparison.OrdinalIgnoreCase)) { row.Visible = false; } else { row.Visible = true; } } manager.ResumeBinding(); } 

Dovresti analizzare il tuo DateTime per stringere e poi confrontare.

 DateTime dt = DateTime.ParseExact(row.Cells[0].Value.ToString(), "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture); string d = dt.ToString("dd/M/yyyy"); if (!string.Equals(d, "27/11/2013", StringComparison.OrdinalIgnoreCase)) { row.Visible = false; } else { row.Visible = true; } 

Implementare anche il seguente spazio dei nomi:

 using System.Globalization;