質問: 私は`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の代わりに文字列を使用できます。