Announcement

Collapse
No announcement yet.

XML Erstellungsprobleme

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XML Erstellungsprobleme

    Guten Tag,

    ich bin leider recht neu im Breich XML und habe ein paar kleine Probleme.

    Ich möchte einen Treeview über XML befüllen. Dazu habe ich mir so einige Lehrbeispiele im Internet angesehen. Das folgende Beispiel funktioniert sehr gut, aber nur für kleine Datenmengen z.B. TOP 20. Wenn ich die komplette Tabelle auslese wird mir die Datenausgabe bei ca. 1000 Zeichen beschnitten. Kann mir einer sagen warum das so ist?

    Code:
    Public Function GetProductsXML() As String
            Dim connectionString As String = System.Configuration.ConfigurationManager.ConnectionStrings("NorthwindConnectionString").ConnectionString
            Dim query As String = "Select Category.CategoryName As Name, Product.ProductName As Name, Product.ProductID" _
            + " From dbo.Categories Category Left Join dbo.Products Product On (Category.CategoryID=Product.CategoryID)" _
            + " Order By Category.CategoryName " + " For XML Auto, Root('Products')"
            Dim cn As New SqlConnection(connectionString)
            Dim cd As New SqlCommand(query, cn)
            cn.Open()
            Dim result As String = cd.ExecuteScalar()
            cn.Close()
            Return result
        End Function

    Als nächstes habe ich versucht daraus ein XML-File zu machen. Jetzt hab ich zwar alle Daten, weiss aber nicht wie ich die sortiert bekomme.
    Code:
    Function GetProductsXML_Dataset() As String
            Dim connectionString As String = System.Configuration.ConfigurationManager.ConnectionStrings("NorthwindConnectionString").ConnectionString
            Dim query As String = "Select Category.CategoryName As Name, Product.ProductName As Name, Product.ProductID" _
            + " From dbo.Categories Category Left Join dbo.Products Product On (Category.CategoryID=Product.CategoryID)" _
            + " Order By Category.CategoryName "
            Dim cn As New SqlConnection(connectionString)
            Dim DACat = New SqlDataAdapter("Category", cn)
            DACat.SelectCommand.CommandText = query
    
            cn.Open()
    
            Try
                Dim dsSql = New DataSet()
    
                'mehr braucht man nicht, um ein Dataset zu füllen....
                DACat.Fill(dsSql, "Categorytabelle")
                dsSql.WriteXml("D:\Codebeispiele\065_Treeview\App_Data\Category.xml")
    
                Return dsSql.ToString
            Catch ex As Exception
                ' Fehlerauswertung
    
    
            Finally
                ' Verbindung schliessen
                cn.Close()
            End Try
    
        End Function
    Für einen kleinen Denkanstoss wäre ich sehr dankbar.

    Gruß

    Kuddel

  • #2
    Hallo,

    für umfangreiche XML-Daten (LOB) ist die Methode GetSqlXml zuständig. Die Methode ExecuteReader liefert einen SqlDataReader zurück, der wiederum über GetSqlXml und CreateReader einen XmlReader befüllen kann.

    Comment

    Working...
    X