L'utilizzo di SqlBulkCopy per l'inserimento di righe in una tabella con colonna di tipo "xml" in SQL Server 2008 genera un'eccezione

c# sqlbulkcopy sql-server

Domanda

Ho una tabella semplice in SQL Server con due colonne Id (BIGINT), PublishData (XML) .

Sono interessato all'utilizzo di SqlBulkCopy ma quando provo a utilizzare SqlBulkCopy.WriteToServer(DataTable) , mi dà un'eccezione inferiore. Sto usando il tipo di dati SqlXml in C # quando creo datatable e aggiungo la colonna per PublishData . Penso che non corrisponda con il tipo di colonna xml in SQL Server. Devo sapere qual è il tipo di dati corretto che devo usare durante la creazione della datatable per la colonna xml e quindi usarlo con SqlBulkCopy .

Qualsiasi aiuto sarebbe apprezzato?

Eccezione non gestita: System.InvalidCastException: il cast specificato non è valido.
a System.Data.SqlClient.TdsParser.WriteBulkCopyValue (valore dell'oggetto, SqlMetaDa taPriv metadata, TdsParserStateObject stateObj)
su System.Data.SqlClient.SqlBulkCopy.WriteToServerInternal ()
su System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServer (Int32 columnCount)
su System.Data.SqlClient.SqlBulkCopy.WriteToServer (tabella DataTable, DataRowSt ate rowState)
su System.Data.SqlClient.SqlBulkCopy.WriteToServer (tabella DataTable)

Risposta popolare

è necessario sapere qual è il tipo di dati corretto che devo utilizzare durante la creazione della datatable per la colonna xml e quindi utilizzarlo con SqlBulkCopy

Che ne dici di legare fuori invece di chiedere qui? Voglio dire, seriamente, quanti tipi di dati ci sono?

Ti suggerisco di provare una STRING in .NET;) Un po 'ovvio, non è vero? Difficilmente puoi archiviare XML in un tipo di dati Bool o Integer, quindi l'UNICA alternativa a SqlXml che posso vedere sarebbe una stringa.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow