【发布时间】:2019-02-04 08:49:29
【问题描述】:
我正在尝试将数据从源 dt 复制到目标数据表。 源数据表类型是字符串,目标数据表类型包含日期时间和字符串。
datatable dt2=new datatable();
foreach (DataRow row in dt1.Rows)
{
dt2.ImportRow(row); //String was not recognized as a valid DateTime.
}
我得到字符串未被识别为有效的日期时间,因为目标列类型是日期时间并且无法导入该行。
【问题讨论】:
-
就个人而言,我会跑(而不是步行)“选择进入”:docs.microsoft.com/en-us/sql/t-sql/queries/…
-
您将无法从无法转换为日期/日期时间的无效字符串中导入数据。您需要在转换之前解析或修复。
-
OK。那么如何解析字符串值,找到目标模式是日期时间?
-
将数据导入同一个表结构,然后使用SQL进行转换会更容易。在 C# 上,您需要检测目标上哪些列是日期,并尝试解析字符串,如果失败则保留为 null。
-
现在我正在尝试使用 Convert.ToDateTime(row[k.ColumnName]) 转换为目标数据类型,其中值为 {4/06/1986 12:00:00 AM。我收到错误: 字符串未被识别为有效的 DateTime。
标签: c# sql sql-server system.data system.data.datatable