比较datagridview的两个日期列,这些列可能包含空日期

时间:2018-10-09 18:54:06

标签: c#

我想比较datagridview的两列,其中包含格式为“ DD-MM-YYYY”的日期。

我使用了以下代码:

var d1 = Convert.ToDateTime(dataGridView1.Rows[0].Cells["DueDate"].Value);
var d2 = Convert.ToDateTime(dataGridView1.Rows[0].Cells["PaymentDate"].Value);

if(d1 <= d2)
{
    MessageBox.Show("Late Payment");
}

我在datagridview中有以下两个日期列。由于PaymentDate列的第2行和第3行为空,因此我的代码引发了异常

  

字符串未被识别为有效的日期时间

第2行和第3行

DueDate         PaymentDate
----------------------------    
27-03-2018      12-03-2018
09-02-2018       
21-09-2018
17-05-2018      22-04-2018  

请告诉我解决该问题的确切代码

1 个答案:

答案 0 :(得分:0)

var dueDate = dataGridView1.Rows[0].Cells["DueDate"].Value != null
    ? dataGridView1.Rows[0].Cells["DueDate"].Value.ToString()
    : string.Empty;

var paymentDate = dataGridView1.Rows[0].Cells["PaymentDate"].Value != null
    ? dataGridView1.Rows[0].Cells["PaymentDate"].Value.ToString()
    : string.Empty;

DateTime d1;
DateTime d2;

if (!DateTime.TryParse(dueDate, out d1) || !DateTime.TryParse(paymentDate, out d2))
{
    MessageBox.Show("Invalid Period"); //Here you can show a message or simply bypass
    return;
}

if (d1 <= d2)
{
    MessageBox.Show("Late Payment");
}