2013-05-06 86 views
0
try 
{ 
    foreach (DataRow row in tempTable.Rows) 
    { 
     row["Start_Date"] = objUtil.ConvertDate(row["Start_Date"].ToString(), "yyyyMMdd").ToString("MM/dd/yyyy hh:mm:ss").Replace("12:00:00 AM", "").Trim(); 
     row["End_Date"] = objUtil.ConvertDate(row["End_Date"].ToString(), "yyyyMMdd").ToString("MM/dd/yyyy hh:mm:ss").Replace("12:00:00 AM", "").Trim(); 
     row["Start_Date_DateTime"] = row["Start_Date"]; 
     rowCnt++; 
    } 
    rowCnt = 0; 
    foreach (DataRow row in tempTable1.Rows) 
    { 
     row["Start_Date"] = objUtil.ConvertDate(row["Start_Date"].ToString(), "yyyyMMdd").ToString("MM/dd/yyyy hh:mm:ss").Replace("12:00:00 AM", "").Trim(); 
     row["End_Date"] = objUtil.ConvertDate(row["End_Date"].ToString(), "yyyyMMdd").ToString("MM/dd/yyyy hh:mm:ss").Replace("12:00:00 AM", "").Trim(); 
     row["Start_Date_DateTime"] = row["Start_Date"]; 
     rowCnt++; 
    } 
    DataView _objdv = new DataView(tempTable); 
    _objdv.Sort = "Suite_ID,Start_Date_DateTime ASC"; 
    DataTable _dt1 = _objdv.ToTable(); 
    objSuiteRate_Table = _dt1; 
    DataView _objdv1 = new DataView(tempTable1); 
    _objdv1.Sort = "Suite_ID,Start_Date_DateTime ASC"; 
    DataTable _dt2 = _objdv1.ToTable(); 
    objSuiteRate_TableGLB = _dt2; 
    objPPCNorm.Connection.Close(); 
} 
catch (Exception ex) 
{ 
    bool rethrow = BusinessLayerExceptionHandler.HandleException(ref ex); 
    throw; 
} 

错误消息是字符串未被识别为有效的DateTime对象

无法存储< 2011年8月30日12:00:00>在日期时间column.Expected类型 是DateTime对象

+0

我试图修复您发布的代码的缩进以使其可读。这表明存在语法错误,我添加了开头的'try {',你忘记了粘贴...' – arkascha 2013-05-06 07:51:14

+0

你的格式有点搞砸了。如果您将代码缩进每行4个空格,则代码格式化应该启动。无论如何,这种异常发生在哪一行上?在这方面什么是objUtil?如果它不是框架的一部分,我们可能需要ConvertDate的代码。 – 2013-05-06 07:51:32

+0

这是什么语言?请将其添加为标签,以便人们可以提供帮助。 # – arkascha 2013-05-06 07:51:39

回答

4

你的错误是对什么是错很清楚:你是把一个字符串转换为datetime列:

objUtil.ConvertDate(row["Start_Date"].ToString(), "yyyyMMdd").ToString("MM/dd/yyyy hh:mm:ss").Replace("12:00:00 AM", "").Trim(); 

会返回一个字符串。所以,你应该删除格式部分或使列字符串类型:

删除格式化部分做的格式,其中显示该行的组件:

objUtil.ConvertDate(row["Start_Date"].ToString(), "yyyyMMdd"); //**.ToString("MM/dd/yyyy hh:mm:ss").Replace("12:00:00 AM", "").Trim()**; 

或更改行定义输入字符串。

+1

我会说不要把它变成一个字符串;格式应该肯定在显示组件中(如你所说的)。 – 2013-05-06 08:32:00

+0

我同意你如何呈现你的数据应该放在数据展现的组件中。 – Peter 2013-05-06 08:33:21

相关问题