在 SQL Server 2008 中使用 SqlBulkCopy 将行插入到具有 'xml' 类型的列的表中引发异常



我在SQL Server中有一个简单的表,它有两列Id (BIGINT), PublishData (XML)

我对使用SqlBulkCopy很感兴趣,但当我尝试使用SqlBulkCopy.WriteToServer(DataTable)时,会出现以下异常。当我为PublishData创建数据表和添加列时,我使用C#中的SqlXml数据类型。我认为它与SQL Server中的列类型xml不匹配。我需要知道在为xml列创建数据表时需要使用的正确数据类型是什么,然后将其与SqlBulkCopy一起使用。

如果有任何帮助,我们将不胜感激?

未处理的异常:System.InvalidCastException:指定的强制转换为无效
位于System.Data.SqlClient.TdsParser.WriteBulkCopyValue(对象值,SqlMetaDa taPriv元数据,TdsParserStateObject stateObj)
位于System.Data.SqlClient.SqlBulkCopy.WriteToServerInternal()
位于System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServer(Int32columnCount)
位于System.Data.SqlClient.SqlBulkCopy.WriteToServer(DataTable表,DataRowSt状态行状态)
位于System.Data.SqlClient.SqlBulkCopy.WriteToServer(DataTable表)

需要知道在为xml创建数据表时需要使用的正确数据类型是什么列,然后将其与SqlBulkCopy 一起使用

把它绑起来而不是问这里怎么样?我的意思是,说真的,有多少数据类型?

我建议您在.NET中尝试STRING;)很明显,不是吗?您很难将XML存储在Bool或Integer数据类型中,所以我能看到的SqlXml的唯一替代方案是字符串。

最新更新