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

c# sqlbulkcopy sql-server

我在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(Int32 columnCount)
在System.Data.SqlClient.SqlBulkCopy.WriteToServer(DataTable表,DataRowSt吃了rowState)
在System.Data.SqlClient.SqlBulkCopy.WriteToServer(DataTable表)

热门答案

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

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

我建议你在.NET中尝试使用STRING;)有点显而易见,不是吗 - 你很难将XML存储在Bool或Integer数据类型中,因此我可以看到的SqlXml的唯一替代方法是string。



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因