2010-10-27 87 views
2

我使用SQLXMLBulkLoad.SQLXMLBulkload.3.0无效字符值

将数据插入SQL 2005

我的数据表中已列如下: objDataTable.Columns.Add("TaskDateTime", System.Type.GetType("System.DateTime"))

我的批量插入模式有以下定义: <xsd:element name="DepartureTime" type="xsd:date" /> (使用xmlns:xsd =“http://www.w3.org/2001/XMLSchema”)

而我得到'铸造规格'无效字符值' excep灰。

有什么建议吗?

+0

问题出在临时XML文件中的'T'。 日期存储为2010-01-01T12:29 + 00:00 如果我将XML更改为2010-01-01 12:29 + 00:00并执行,它将成功运行。 – 2010-10-27 14:43:21

回答

3

解决!

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

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

+0

如果您使用SQLXML从XSD创建数据库模式,请将XSD dateTime元素更改为字符串并运行。不幸的是,SQL Server(或.NET就此而言)不能非常灵活地处理ISO 8660-1日期/时间字符串。对于80%的模式构建以及之后的一些手动干预,它仍然非常有用。 – ssamuel 2013-05-29 22:25:51

1

问题是在源列空白........这是什么导致无效字符值的演员规范。