我试图创建一个警报系统并且我得到这个错误:无法隐式转换类型'system.datetime'顶部字符串c#
我的代码:
private void button1_Click(object sender, DataGridViewCellFormattingEventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
string dateInString = DateTime.Parse(dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString()); //error
}
DateTime startDate = DateTime.Parse(dateInString);
DateTime expiryDate = startDate.AddDays(30);
if (DateTime.Now > expiryDate)
{
textBox3.Text = "O pagamento X expirou, faça o favor de pagar, caloteiro";
}
}
请帮助。 谢谢。
答案 0 :(得分:0)
问题出在以下几行:
string dateInString = DateTime.Parse(dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString());
您尝试将DateTime
值分配到string
变量。
相反,只需在对象上进行小.ToString()
调用即可获取值:
string dateInString = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();
除此之外,你有一些范围问题,你实际上是在引用最后分配的DateTime
值:
foreach (DataGridViewRow row in dataGridView1.Rows)
{
string dateInString = DateTime.Parse(dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString()); //error
}
DateTime startDate = DateTime.Parse(dateInString);