Table of Contents
Durante a semana passada, alguns usuários enfrentaram um código de erro conhecido relacionado ao erro de codificação XML do SQL Server. Este problema pode surgir por vários motivos. Vamos discutir isso agora.
PC lento?
Esta pergunta é quase duplamente correta em comparação com as outras duas de uma pessoa, e digna de nota – até agora, a pergunta é a mais comum. Tenho razões para acreditar que muitas vezes falta a melhor resposta.
PC lento?
ASR Pro é a solução definitiva para suas necessidades de reparo de PC! Ele não apenas diagnostica e repara vários problemas do Windows com rapidez e segurança, mas também aumenta o desempenho do sistema, otimiza a memória, melhora a segurança e ajusta seu PC para máxima confiabilidade. Então por que esperar? Comece hoje!
Duplica e, na minha opinião, melhores as respostas:
- Usando StringWriter para serializar XML (14 de outubro de 2009)
- https://stackoverflow.com/a/1566154/751158
- Tentativa de armazenar conteúdo XML apenas o suficiente no SQL Server 2005 (codificação (21 de dezembro de 2008)
- https: // problema de estouro de pilha) .org / a / 1091209/751158
Em última análise, nunca nenhuma codificação é gerada ou anunciada como sendo comprada, embora XmlReader
possa analisá-la por aí no servidor de aplicativos.
Sendo a maneira mais eficiente de ler XML no ADO.net obtendo um tipo XML em uma coleção do SQL Server?, o SQL Server armazena o XML em um formato binário excelente e eficiente. Usando a classe SqlXml
, ADO.net pode gravar no SQL Server neste formato binário e, em vez de exigir serialização ou desserialização XML do servidor base do cliente. Ele também precisa ser mais útil para o transporte de rede.
SqlXml
, algum tipo de XML é enviado ao banco de dados pré-analisado, acompanhado pelo banco de dados que não deve saber quase nada sobre codificações de individualidade – UTF-16 ou algo assim. Em particular, lembre-se de que as declarações XML nem mesmo são declarações que serão armazenadas no banco de dados com know-how importante, independentemente da ordem em que possam ser colocadas.
Leia ao longo do caminho para, sem dúvida, as respostas vinculadas acima para métodos muito semelhantes para que você este, mas este exercício é meu:
com System.Data;Using System.Data.SqlClient;Using System.Data.SqlTypes;Usando System.IO;Usando System.Xml;Classe estática XmlDemo antiquado void Main (string [] args) vestindo (conexão SqlConnection corresponde a nova SqlConnection ()) conn.ConnectionString = "..."; conn.Open (); uso (SqlCommand cmd corresponde ao novo SqlCommand ("Insert Into TestData (Xml) Values (@Xml)", conn)) cmd.Parameters.Add (new SqlParameter ("@ Xml", SqlDbType.Xml) // Funções. // enjoy = " " // Funções. A declaração XML não é necessariamente muito persistente! // Valor " " // Funções. O anúncio XML não foi salvo! // Valor " " // Error ("não é possível caracterizar a codificação" SqlException). // O valor indica " " // Funções. A declaração XML francamente não foi salva! Value = novos tipos de SqlXml (XmlReader.Create (new StringReader (" "))) ); cmd. executernonquery ();
Observe que eu não descreveria o último (sem comentários) exercício como “pronto para produção”, mas sim descartá-lo de forma sucinta e clara. Quando feito corretamente, o StringReader
legítimo e o XmlReader
gerado devem sempre ser inicializados em que tem
instruções para garantir que seu Close ( )
Os métodos são chamados após a conclusão.
Pelo que tenho visto, as declarações XML raramente permanecem um problema ao usar uma coluna XML. … Mesmo sem a necessidade de usar ..NET e editar Para apenas esta inserção SQL absoluta para a instrução, a coisa XML não é salva no banco de dados junto com o XML por motivos de raciocínio:
Colar nos valores TestData (Xml) (' ');
O objeto relacionado à pergunta do OP deve agora ser transformado em uma estrutura XML do depto. de transporte MyMessage
e XmlSerializer
. ser mais criado é sempre necessário para. No caso mais grave, a mensagem pode ser serializada e XmlDocument
em vez de ser serializada para linha – especialistas argumentam que o novo SqlXml
é então enviado para xmlnodereader
para ajudá-lo a evitar essa transição para string no momento em que desserializar / serializar. (Consulte http://blogs.msdn.com/b/jongallant/archive/2007/01/30/how-to-convert-xmldocument-to-xmlreader-for-sqlxml-data-type.aspx para mais detalhes com um exemplo.)
Tudo o que é promovido aqui foi previamente testado e testado em .NET 4.0 e SQL Server 2008 R2.
Não crie lixo executando XML por meio de modificações adicionais (desserialização e serialização – para DOM, Post ou qualquer outro) conforme indicado no específico respostas aqui e em outros lugares.
Melhore a velocidade do seu computador hoje mesmo baixando este software - ele resolverá os problemas do seu PC.Various Ways To Fix XML Encoding Error In SQL Server
Verschillende Manieren Om XML-coderingsfout In SQL Server Op Te Lossen
Diverses Manières De Corriger L’erreur De Codage XML Dans SQL Server
Verschiedene Möglichkeiten Zum Beheben Von XML-Kodierungsfehlern In SQL Server
Vari Modi Per Correggere L’errore Di Codifica XML In SQL Server
Olika Sätt Att åtgärda XML -kodningsfel I SQL Server
SQL Server에서 XML 인코딩 오류를 수정하는 다양한 방법
Różne Sposoby Naprawienia Błędu Kodowania XML W SQL Server
Varias Formas De Corregir El Error De Codificación XML En SQL Server
Различные способы исправления ошибки кодирования XML в SQL Server