如何检查dataRow中的dateTime是否为Null
本文关键字:dateTime 中的 是否 Null dataRow 何检查 检查 | 更新日期: 2023-09-27 18:25:24
我正在编写一个web应用程序。我想检查dateFrom是null还是dateTo是null。如果dateFrom为null,则打印出dateTo;如果dateTo为null,那么打印出dateFrom。如果两者都存在,则打印出12/3/2015 - 12/3/2015
等格式。我的大部分代码都在工作,但我不知道如何处理空日期。它一直给我这个例外
字符串未被识别为有效的DateTime
这是我的代码
public DataSet SearchTimingReq()
{
DateTime effectDateFrom, effectDateTo;
DataSet ds = someDataSet();
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow row in ds.Tables[0].Rows)
{
if (Convert.ToDateTime(row["Effect_Date_To"].ToString()).ToString("dd/MM/yyyy") == DateTime.MinValue.ToString())
{
row["Effective_Period"] = effectDateFrom.ToString("dd/MM/yyyy");
}
if (Convert.ToDateTime(row["Effect_Date_From"].ToString()).ToString("dd/MM/yyyy") == DateTime.MinValue.ToString())
{
row["Effective_Period"] = effectDateTo.ToString("dd/MM/yyyy");
}
if (effectDateTo != DateTime.MinValue && effectDateFrom == DateTime.MinValue)
{
row["Effective_Period"] = Convert.ToDateTime(row["Effect_Date_From"].ToString()).ToString("dd/MM/yyyy") + " - " + Convert.ToDateTime(row["Effect_Date_To"].ToString()).ToString("dd/MM/yyyy");
}
}
}
}
更新代码
if (!DBNull.Value.Equals(row["Effect_Date_From"]))
{
row["Effective_Period"] = Convert.ToDateTime(row["Effect_Date_To"].ToString()).ToString("dd/MM/yyyy");
}
if (!DBNull.Value.Equals(row["Effect_Date_To"]))
{
row["Effective_Period"] = Convert.ToDateTime(row["Effect_Date_From"]).ToString("dd/MM/yyyy");
}
if (DBNull.Value.Equals(row["Effect_Date_To"]) && DBNull.Value.Equals(row["Effect_Date_From"]))
{
row["Effective_Period"] = Convert.ToDateTime(row["Effect_Date_From"].ToString()).ToString("dd/MM/yyyy") + " - " + Convert.ToDateTime(row["Effect_Date_To"].ToString()).ToString("dd/MM/yyyy");
}
您可以使用下面的代码来检查数据表的数据行中是否存在空值。
if (DBNull.Value.Equals(row["Effect_Date_From"]))
{
// null
}
您可以使用DateTime.TryParse
来处理无效的DateTime值,同时还可以解析日期。
DateTime d;
if(DateTime.TryParse(row["column"], out d))
{
//it's a valid DT
}
else
{
//invalid
}