Around and About .NET World

Il blog di Marco Minerva
posts - 1671, comments - 2232, trackbacks - 2135

My Links

News

Contattami su Live Messenger:


MCTS: Windows, Web, Distributed Applications & SQL Server

MCPD: Enterprise Applications

Tag Cloud

Archives

Post Categories

Links

Inserire dati XML in SQL Server 2005

Se si tenta di inserire via codice un file XML in un campo XML di SQL Server 2005, è possibile ottenere una SqlException contenente il seguente messaggio:

XML parsing: line 1, character 38, unable to switch the encoding

Il problema nasce dal fatto che, tipicamente, i file XML sono codificati in UTF-8, mentre SQL Server si aspetta di ricevere documenti in formato UTF-16. Per risolvere questo inconveniente ci sono diverse soluzioni. Quella che adotto io consiste nello specificare il flag Encoding.Unicode quando apro il file XML da inserire nel database:

using (StreamReader sr = new StreamReader(filePath, Encoding.Unicode)) { cmd.Parameters.Add("@xmlData", SqlDbType.Xml); cmd.Parameters["@xmlData"].Value = new SqlXml(new XmlTextReader(sr)); }

In questo modo, il file XML viene interpretato secondo la codifica UTF-16, quindi può essere salvato correttamente in SQL Server 2005.

Print | posted on Monday, June 25, 2007 11:04 AM | Filed Under [ C# ADO .NET & SQL ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET