Table of Contents
W ciągu ostatniego tygodnia niektórzy użytkownicy napotkali określony znany kod błędu związany z błędem kodowania XML programu SQL Server. Ten problem może powstać z wielu powodów. Porozmawiajmy o tym teraz.
Komputer działa wolno?
Ten problem jest prawie podwójnie poprawny w porównaniu z dwoma dodanymi i godny uwagi – jak dotąd ten temat jest najczęstszy. Myślę, że często brakuje im najlepszej odpowiedzi.
Komputer działa wolno?
ASR Pro to najlepsze rozwiązanie dla potrzeb naprawy komputera! Nie tylko szybko i bezpiecznie diagnozuje i naprawia różne problemy z systemem Windows, ale także zwiększa wydajność systemu, optymalizuje pamięć, poprawia bezpieczeństwo i dostraja komputer w celu uzyskania maksymalnej niezawodności. Więc po co czekać? Zacznij już dziś!
Duplikaty i moim zdaniem najlepsze odpowiedzi:
- Używanie StringWriter do serializacji XML (14 października 2009)
- https://stackoverflow.com/a/1566154/751158
- Próba przechowywania wystarczającej ilości zawartości XML w SQL Server 2005 (kodowanie (21 grudnia 2008)
- https: // problem z przepełnieniem stosu) .com i / 1091209/751158
Ostatecznie żaden program nie jest generowany ani reklamowany jako używany, z drugiej strony XmlReader
może je analizować lokalnie dla serwera aplikacji.
Jako najbardziej kompetentny sposób odczytywania XML w ADO.net przy użyciu rzeczywistego typu XML w wątku SQL Server?, SQL Server przechowuje XML w zaradnym formacie binarnym. Używając modułu SqlXml
, ADO.net Może pisać do SQL Server w tym formacie binarnym i nie musi pobierać serializacji lub deserializacji XML z witryny bazy danych. Musi również skuteczniej wspierać transport sieciowy.
SqlXml
, XML jest wysyłany do bazy danych wstępnie parsowany, wtedy główna baza danych nie powinna wiedzieć prawie nic o kodowaniu mechaniki – UTF-16 lub tak. W szczególności zauważ, że deklaracje XML nie są nawet deklaracjami, które być może są przechowywane w bazie danych z ważnymi informacjami, niezależnie od kolejności, w jakiej są delikatnie umieszczane.
Przeczytaj po drodze powiązane odpowiedzi powyżej dla metod bardzo podobnych do tej z kolei, ale to ćwiczenie jest moje:
z System.Data;Korzystanie z System.Data.SqlClient;Korzystanie z System.Data.SqlTypes;Korzystanie z System.IO;Korzystanie z System.Xml;Klasa statyczna XmlDemo starszy styl void Main (string [] args) mile (połączenie SqlConnection odpowiada nowemu SqlConnection ()) conn.ConnectionString = "..."; poł.Otwarte (); użycie (cmd SqlCommand pasuje do współczesnego polecenia SqlCommand („Wstaw wartości do danych testowych (Xml) (@Xml)”, conn)) cmd.Parameters.Add (nowy SqlParameter („@ Xml”, SqlDbType.Xml) // Funkcje. // obchodzi = " " // Funkcje. Deklaracja XML niekoniecznie musi być poprawnie trwała! // Wartość " " // Funkcje. Deklaracja XML często nie jest zapisywana! // Wartość " " // Błąd („nie można zakodować klucza” SqlException). // Technika wartości " " // Funkcje. Deklaracja XML po prostu nie jest zapisywana! Wartość = new SqlXml (XmlReader.Create (nowy StringReader (" )))) ); cmd. wykonawcanonquery ();
Proszę zwrócić uwagę, że ostatniego (bez komentarzy) przypadku nie określiłbym jako „gotowy do produkcji”, ale raczej zwięźle i dodatkowo wyraźnie odrzuciłbym go. Po prawidłowym wykonaniu rzeczywisty StringReader
i wygenerowany XmlReader
powinny być zawsze inicjowane w z deklaracją
, aby zapewnić, że wartościowe Close ( )
Metody są wywoływane po zakończeniu.
Z tego, co widziałem, deklaracje XML rzadko utrzymują się, gdy używasz kolumny XML. … Nawet bez użycia ..NET i edycji Dla tego bezpośredniego wstawienia SQL do instrukcji, deklaracja XML nie powinna być zapisywana w bazie danych wraz z samym XML z powodów rozumowania:
Wklej wartości TestData (Xml) (' ');
Obiekt odnoszący się do pytania OP musi być teraz przekonwertowany, aby zapewnić strukturę XML z kropki MyMessage
i < kod> XmlSerializer . być sfabrykowanym jest zawsze konieczne. W najgorszym przypadku wiadomość może zostać zserializowana do XmlDocument
zamiast do sekwencji — eksperci twierdzą, że nowy SqlXml
jest następnie wysyłany do xmlnodereader
na drodze, aby uniknąć tego przejścia na ciąg znaków podczas deserializacji dla każdej serializacji. (Zobacz http://blogs.msdn.com/b/jongallant/archive/2007/01/30/how-to-convert-xmldocument-to-xmlreader-for-sqlxml-data-type.aspx, aby uzyskać więcej informacji przykład.)
Wszystko, co jest tutaj promowane, zostało zasugerowane i przetestowane na .NET 4.0 i SQL Server 2008 R2.
Proszę nie tworzyć śmieci, wykonując XML, stosując dodatkowe modyfikacje (deserializacja i serializacja – do DOM, Post lub cokolwiek innego), jak wskazano w wynikach tutaj i gdzie indziej .
Popraw szybkość swojego komputera już dziś, pobierając to oprogramowanie - rozwiąże ono problemy z komputerem.
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
Várias Maneiras De Corrigir Erros De Codificação XML No SQL Server
Olika Sätt Att åtgärda XML -kodningsfel I SQL Server
SQL Server에서 XML 인코딩 오류를 수정하는 다양한 방법
Varias Formas De Corregir El Error De Codificación XML En SQL Server
Различные способы исправления ошибки кодирования XML в SQL Server