16. juli 2002 - 11:39Der er
1 kommentar og 1 løsning
kompleks XML fra SQL 2000 ind i XMLDocument i .net
Hvordan får jeg returneret en større omgang xml fra SQL serveren og får det ind i et XML dokument. Følgende kode fungerer fint så længe jeg får et element fra SQL'en, men når jeg skal ha flere elementer fejler den pga. flere rod elementer. Proceduren "GetSomeXml" returnerer for, eksemplets skyld, bare resultatet af 'Select top 2 name from sysobjects for xml auto, elements'.
Dim MotherDoc As New Xml.XmlDocument() Dim TempNodelist As System.Xml.XmlTextReader Dim myCommand As New SqlClient.SqlCommand("GetSomeXML", SystemConnection) TempNodelist = myCommand.ExecuteXmlReader MotherDoc.Load(TempNodelist) MsgBox(MotherDoc.InnerText)
Jeg har i første omgang løst det som følgende. En meget grim løsning som jeg mildelst talt ikke er stolt af, men det virker.
Dim MotherDoc As New Xml.XmlDocument() Dim TempNodelist As System.Xml.XmlTextReader Dim myCommand As New SqlClient.SqlCommand("GetSomeXML", SystemConnection) Dim XMLString As String Dim Buffer As String
TempNodelist = myCommand.ExecuteXmlReader TempNodelist.MoveToContent() Buffer = TempNodelist.ReadInnerXml While Buffer <> "" XMLString = XMLString + Buffer Buffer = TempNodelist.ReadInnerXml End While XMLString = "<Classes>" & XMLString & "</Classes>" MotherDoc.LoadXml(XMLString)
Jeg har selv fundet løsningen. For bare lige at vise at det ikke er løgn er svaret her som beskrevet af Bob Beauchemin. ;) ---------------------------------- You are referring to the OLE DB 2.6 features and their implementation in SQL Server. The (almost exact) equivalent functionality is found in the SqlXml managed classes that are part of the SQLXML 3.0 release, available for download on MSDN.
You are correct in recognizing that this is not in the base .NET data provider model.
Hope this helps, Bob Beauchemin bobb@develop.com -------------------------------
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.