我想比较单元格(日期时间)值为空或"无"。如果它不为空或无,则在它之后将添加参数。我非常感谢您的帮助。
谢谢,它让我无法将日期时间转换为字符串错误
command.Parameters.AddWithValue("@pin", row.Cell(2).GetValue<string>());
command.Parameters.AddWithValue("@Amount", row.Cell(3).GetValue<int>());
if(row.Cell(4).GetValue<DateTime>() == "" || row.Cell(4).GetValue<DateTime>() =="none")
{
}
command.Parameters.AddWithValue("@Expirydate", row.Cell(4).GetValue<DateTime>());
command.ExecuteNonQuery();
答案 0 :(得分:1)
您可以通过解析如下来将DateTime和comapre转换为字符串
(DateTime.Parse(date).ToString()=="None" || DateTime.Parse(date).ToString()==String.Empty())?true:False
或者您可以使用try catch块来验证它。
答案 1 :(得分:0)
首先将其作为字符串读取,检查,然后将其转换为DateTime。
var s = row.Cell(4).GetValue<String>();
is (s != null && s != "" && s != "none")
{
var d = DateTime.Parse(s);
command.Parameters.AddWithValue("@Expirydate", d);
}
或重新考虑问题。而不是依赖于magic number,只需在有效日期填充到期日期,如下所示:
var s = row.Cell(4).GetValue<String>();
DateTime d;
if (DateTime.TryParse(s, out d))
{
command.Parameters.AddWithValue("@Expirydate", d);
}
由于“none”和“”不是有效日期,这将有效,此外如果有人输入“无”,“N / A”,“从不”等,它将继续有效。