我想比较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
请告诉我解决该问题的确切代码
答案 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");
}