我在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的唯一替代方案是字符串。