none
Problem mit Übersetzung linq to xml RRS feed

  • Frage

  • Hallo

    ich müsste unbedingt eine XML Datei in eine sql-Server-Tabelle importieren. Jetzt habe ich nach Möglichkeiten gesucht, anscheinend geht es nur über asp.net bzw. linq, nicht direkt über die Managementkonsole.

    Ich habe ein schönes Beispiel von bei Alex gefunden, klicken aber in C#. Es dauert bei mir immer Stunden,  diese linq Anweisungen in vb zu übersetzen. Die Übersetzung mit einem Converter funktioniert zwar sonst gut, aber bei linq kommt er nicht klar. Es gibt auch kaum Beispiele im iNet.

    Diese ist mein Versuch.

            Dim xmldoc As XDocument = New XDocument()
            xmldoc = XDocument.Load(Server.MapPath(myPath))
            Dim db As New ptsDataContext
    
            Dim xmld = From b In xmldoc.Descendants("poems") _
                              Order By b.Element("thema").Value Ascending _
                             Select New poems With {.thema = b.Element("thema").Value, _
                                                       .sort = b.Element("sort").Value, _
                                                       .content = b.Element("content").Value}
    
            db.poems.InsertAllOnSubmit(xmld)
            db.SubmitChanges()

    Select New poems .. dies ist falsch.

    Vielleicht kann mir jemand kurz helfen und mir sage, was falsch ist.


    Liebe Grüße, die Luzie!

    Dienstag, 5. März 2013 08:16

Antworten

  • Hallo Stefan,

    danke für die Rückmeldung.

    Kurz und gut, das Thema hat sich erledigt wg. eigener Dummheit. :( zudem noch einen Tippfehler und da ganze läuft schief.

    Dann ärgere ich mich ständig, dass ich die LINQ Anweisung selbst nicht so gut übersetzen kann und es wirklich wenige Beispiele für VB gibt. Dabei nutze ich das wirklich gerne und auch viel.

    Hier ist der Code, der funktioniert. tblStammdaten ist die Tabelle.

     Protected Sub importxml()
    
            Dim xmldoc As XDocument = New XDocument()
            xmldoc = XDocument.Load(Server.MapPath(myPath))
            Dim db As New ptsDataContext
    
            Dim xmld = From b In xmldoc.Descendants("poems") _
                              Order By b.Element("thema").Value Ascending _
                              Select New tblStammdaten With {.thema = b.Element("thema").Value, _
                                                       .sort = b.Element("sort").Value, _
                                                        .wert = b.Element("wert").Value, _
                                                       .content = b.Element("content").Value}
    
            db.tblStammdaten.InsertAllOnSubmit(xmld)
            db.SubmitChanges()
    
        End Sub


    Liebe Grüße, die Luzie!

    Dienstag, 5. März 2013 19:38

Alle Antworten

  • Hallo Luzie,

    poste bitte mal die Tabellendefinition der Datentabelle im SQL Server. Dazu bitte noch die XML Datei online stellen (oder einen verarbeitbaren Ausschnitt hier posten).

    Die Fehlermeldung wäre dann auch interessant.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert Luzie Dienstag, 5. März 2013 19:39
    • Tag als Antwort aufgehoben Stefan FalzModerator Dienstag, 5. März 2013 20:16
    Dienstag, 5. März 2013 08:48
    Moderator
  • Hallo Stefan,

    danke für die Rückmeldung.

    Kurz und gut, das Thema hat sich erledigt wg. eigener Dummheit. :( zudem noch einen Tippfehler und da ganze läuft schief.

    Dann ärgere ich mich ständig, dass ich die LINQ Anweisung selbst nicht so gut übersetzen kann und es wirklich wenige Beispiele für VB gibt. Dabei nutze ich das wirklich gerne und auch viel.

    Hier ist der Code, der funktioniert. tblStammdaten ist die Tabelle.

     Protected Sub importxml()
    
            Dim xmldoc As XDocument = New XDocument()
            xmldoc = XDocument.Load(Server.MapPath(myPath))
            Dim db As New ptsDataContext
    
            Dim xmld = From b In xmldoc.Descendants("poems") _
                              Order By b.Element("thema").Value Ascending _
                              Select New tblStammdaten With {.thema = b.Element("thema").Value, _
                                                       .sort = b.Element("sort").Value, _
                                                        .wert = b.Element("wert").Value, _
                                                       .content = b.Element("content").Value}
    
            db.tblStammdaten.InsertAllOnSubmit(xmld)
            db.SubmitChanges()
    
        End Sub


    Liebe Grüße, die Luzie!

    Dienstag, 5. März 2013 19:38