C# 如何检查dataRow中的dateTime是否为Null?
我正在写一个web应用程序。我想检查dateFrom是null还是dateTo是null。如果dateFrom为null,则打印dateTo;如果dateTo为null,则打印dateFrom。如果两者都存在,则打印出表格,如C# 如何检查dataRow中的dateTime是否为Null?,c#,datetime,C#,Datetime,我正在写一个web应用程序。我想检查dateFrom是null还是dateTo是null。如果dateFrom为null,则打印dateTo;如果dateTo为null,则打印dateFrom。如果两者都存在,则打印出表格,如12/3/2015-12/3/2015。我的大部分代码都正常工作,但我不知道如何处理空日期。它总是给我这个例外 字符串未被识别为有效的日期时间 这是我的密码 public DataSet SearchTimingReq() { DateTime effectDate
12/3/2015-12/3/2015
。我的大部分代码都正常工作,但我不知道如何处理空日期。它总是给我这个例外
字符串未被识别为有效的日期时间
这是我的密码
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");
}
您可以使用下面的代码检查datatable的datarows上的空值
if (DBNull.Value.Equals(row["Effect_Date_From"]))
{
// null
}
您可以使用
DateTime.TryParse
处理无效的日期时间值,同时还可以解析日期
DateTime d;
if(DateTime.TryParse(row["column"], out d))
{
//it's a valid DT
}
else
{
//invalid
}
感谢您的回复,我想知道为什么它说
Convert.ToDateTime(第[“Effect\u Date\u From”].ToString()).ToString(“dd/MM/yyyy”)
这一行导致异常?