如何动态检查行的列中是否有任何日期时间值?

时间:2016-01-20 11:54:04

标签: c# asp.net datetime c#-4.0

我写了像

这样的代码
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
    foreach (DataColumn dc in ds.Tables[0].Columns)
    {
        dc.ColumnName = dc.ColumnName.ToString().Replace(" ", "-").Replace("%", "_").Replace(",", "").Replace("'", "").Replace("(", "").Replace(")", "").Replace(":", "").Replace("?", "").Replace("/", "").Replace("!", "");

        ds.Tables[0].Rows[i][dc.ColumnName] = ds.Tables[0].Rows[i][dc.ColumnName].ToString().Replace("<br/>", "\r");
        if (ds.Tables[0].Rows[i][dc.ColumnName].DataType == System.Type.GetType("System.DateTime"))
        { 

        }
    }
  }

我想检查任何行是否包含任何日期时间列。

上面的代码在

中抛出错误
      ds.Tables[0].Rows[i][dc.ColumnName].DataType 

行......请帮帮我!!!

2 个答案:

答案 0 :(得分:2)

尝试使用“is”代替:

 if(ds.Tables[0].Rows[i][dc.ColumnName] is DateTime)
 {
 }

我建议你也检查列/值是否为null。 否则,您可能会收到NullException。

编辑: 你也可以使用:

if(ds.Tables[0].Rows[i][dc.ColumnName].GetType() == typeof(DateTime))

答案 1 :(得分:1)

将您的列名称用于字符串并解析

sum(if(u.date=bp.date,sum(bp.o_outcome),0)

检查成功否则不是..日期