我在SQL Server中有一个简单的表,有两列Id (BIGINT), PublishData (XML)
。
我有兴趣使用SqlBulkCopy
但是当我尝试使用SqlBulkCopy.WriteToServer(DataTable)
时,它会给我以下异常。我在创建数据表并为SqlXml
添加列时,在C#中使用PublishData
数据类型。我认为它与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表)
答案 0 :(得分:1)
需要知道在为xml创建数据表时我需要使用的正确数据类型是什么 列然后与SqlBulkCopy一起使用
怎么样把它绑起来而不是在这里问?我的意思是,严重的是,有多少数据类型?
我建议你在.NET中尝试使用STRING;)有点显而易见,不是吗 - 你很难将XML存储在Bool或Integer数据类型中,因此我可以看到的SqlXml的唯一替代方法是string。