字符串未被识别为有效的日期时间对象
本文关键字:日期 时间 对象 有效 识别 字符串 | 更新日期: 2023-09-27 18:12:20
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列中存储<08-30-2011 12:00:00>。预期的类型is DateTime对象
你的错误是非常清楚什么是错的:你把一个字符串到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()**;
或将行定义更改为字符串类型