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;
}
错误讯息是
无法存储< 08-30-2011 12:00:00>在DateTime列中。期望的类型 是DateTime对象
答案 0 :(得分:4)
您的错误非常清楚:您将字符串放入日期时间列:
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()**;
或将您的行定义更改为string type。