Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查dataRow中的dateTime是否为Null?_C#_Datetime - Fatal编程技术网

C# 如何检查dataRow中的dateTime是否为Null?

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

我正在写一个web应用程序。我想检查dateFrom是null还是dateTo是null。如果dateFrom为null,则打印dateTo;如果dateTo为null,则打印dateFrom。如果两者都存在,则打印出表格,如
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”)
这一行导致异常?