SQL Server 2008でSqlBulkCopyを使用して 'xml'型の列を持つテーブルに行を挿入すると例外が発生する

c# sqlbulkcopy sql-server

質問

私はId (BIGINT), PublishData (XML) 2つの列を持つSQL Serverのシンプルなテーブルを持っています。

私はSqlBulkCopy使用に興味がありSqlBulkCopy.WriteToServer(DataTable)SqlBulkCopy.WriteToServer(DataTable)を使用しようとすると、以下の例外が発生します。私が使用していますSqlXml私はDataTableの作成とのために列を追加するときにC#でのデータ型をPublishData 。 SQL Serverの列型xmlとの不一致だと思います。私はのためのDataTableの作成中に使用する必要が正しいデータ型が何であるかを知っておく必要があり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テーブル、DataRowState rowState)
System.Data.SqlClient.SqlBulkCopy.WriteToServer(DataTableテーブル)

人気のある回答

xml列のデータテーブルを作成する際に使用する必要がある正しいデータ型が何であるかを知り、SqlBulkCopyで使用する必要があります

ここで尋ねる代わりにそれを縛るのはどうですか?真剣に、いくつのデータ型があるのですか?

私はあなたがSTRINGを.NETで試してみることをお勧めします;)明らかなのは、そうではありません.BoolやIntegerデータ型にXMLをほとんど格納できないため、SqlXmlの代わりに文字列を使用できます。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ