C# 强制转换规范的字符值无效

C# 强制转换规范的字符值无效,c#,sql,bulkinsert,sqlxml,C#,Sql,Bulkinsert,Sqlxml,我正在使用SQLXMLBulkLoad.SQLXMLBulkLoad.3.0将数据插入SQL2005 我的数据表有以下列: objDataTable.Columns.Add(“TaskDateTime”,System.Type.GetType(“System.DateTime”)) 我的批量插入架构具有以下定义: (使用xmlns:xsd=”http://www.w3.org/2001/XMLSchema)) 我得到了“cast规范的无效字符值”异常 有什么建议吗?问题是源列中有空格。。。。。

我正在使用SQLXMLBulkLoad.SQLXMLBulkLoad.3.0将数据插入SQL2005

我的数据表有以下列:
objDataTable.Columns.Add(“TaskDateTime”,System.Type.GetType(“System.DateTime”))

我的批量插入架构具有以下定义:
(使用xmlns:xsd=”http://www.w3.org/2001/XMLSchema))

我得到了“cast规范的无效字符值”异常


有什么建议吗?

问题是源列中有空格。。。。。。。。这就是导致强制转换规范的无效字符值的原因。

已解决

已将列类型从更改为: objDataTable.Columns.Add(“TaskDateTime”,System.Type.GetType(“System.DateTime”)) 到 objDataTable.Columns.Add(“TaskDateTime”,System.Type.GetType(“System.String”))

我在数据表中将我的值存储为.ToString(“yyy-MM-dd HH:MM”)+“:00+00:00”。
在磁盘上创建XML文件时,它只是将其写入字符串,而大容量插入的模式文件将其读取为datetime。

问题在于临时XML文件中的“T”。日期存储为2010-01-01T12:29+00:00如果我将XML更改为2010-01-01 12:29+00:00并执行,它将成功运行。如果您使用SQLXML从XSD创建数据库架构,请将XSD dateTime元素更改为string并运行。不幸的是,SQL Server(或.NET)不能非常灵活地处理ISO 8660-1日期/时间字符串。对于80%的模式构建,在之后进行一些手动干预仍然非常有用。