stonetherippa Geschrieben 19. November 2007 Teilen Geschrieben 19. November 2007 Hallo ich habe mit Xml Writer eine Xml erstellt und möchte mit einer FOR EACH die datenbank auslesen und in die XMl file reinschreiben,kann mir jenmand helfen?Stehe auf dem schlauch:-(.. hier ein Ausschnitt vom momentanen Code: Dim dRo As DataRow For Each dRo In ds.Tables("Daten").Rows 'und hier bin ich schon am Ende... Next Using writer As XmlWriter = XmlWriter.Create("C:\xxx.xml",wset) writer.WriteStartDocument writer.WriteStartElement("Personen") writer.WriteStartElement("Person") writer.WriteStartAttribute("Nachname") writer.WriteValue(varNachname) writer.WriteEndAttribute() writer.WriteStartAttribute("Name") writer.WriteValue(name) writer.WriteEndAttribute() writer.WriteStartAttribute("Alter") writer.WriteValue(varAlter) writer.WriteEndAttribute() writer.WriteEndElement() writer.WriteEndElement() writer.WriteEndDocument() Wie schaffe ich es hier die Xml dynamisch zu füllen? zb dass bei writer.WriteValue(name) aus der Db(wie oben in der FOREACH(Betriebe) die Namen ausgelesen werden(natürlich nicht alle in einem String) ?jemand einen VorschlaG? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Argbeil Geschrieben 19. November 2007 Teilen Geschrieben 19. November 2007 ds.WriteXml("c:/dein.xml"); Wenn die Struktur anders sein soll kannst du auch ein xsd mitgeben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
stonetherippa Geschrieben 19. November 2007 Autor Teilen Geschrieben 19. November 2007 Hallo, das habe ich ja schon,hab ich vielleicht zu kompliziert geschrieben;-) mir erstellt es ja die Xml, will eigentlich nur wissen wie ich die FOR EACH SCHLEIFE nutze, die Daten aus der Db zu holen und dann mit dem writer.WriteValue(dbInhalt) nutze. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Argbeil Geschrieben 19. November 2007 Teilen Geschrieben 19. November 2007 Vielleicht auch zu einfach geschrieben. Was hast du vor? Du hast ein Dataset und willst die Daten in eine Textdatei schreiben? Kannst du das ein bisschen detaillierter erklären? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
stonetherippa Geschrieben 19. November 2007 Autor Teilen Geschrieben 19. November 2007 Hallo Arg, ja klar, ich habe eine Sql Abfrage und ein Dataset, ich will zB. den gesmaten Inhalt der Tabellen Nachname,Name,Alter in die Xml Datei reinschreiben,und habe keine Ahnung wie ich die FOR EACH Schleife anwenden soll, um das zu realisieren. jetzt ok? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Argbeil Geschrieben 19. November 2007 Teilen Geschrieben 19. November 2007 Kommt drauf an ob du ein typisiertes oder untypisiertes Dataset hast. Woran hapert es denn? Beim schreiben der Xml oder beim Zugriff auf die Felder? Wie soll das xml denn aussehen? Mit den Werten als Attributen oder jeder Wert ein Element? Willst du XmlDocument oder XmlWriter verwenden? Wenn es dir nur um das for each geht dann so: for each (DataRow singleRow in myDs.Tables[0] ) { string name = singleRow["Name]"; // Name in Xml schreiben... } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Argbeil Geschrieben 19. November 2007 Teilen Geschrieben 19. November 2007 Also in VB dann so: For Each singleRow as DataRow In ds.Tables("Daten") dim name as string = singleRow("Name") ' ins xml schreiben.. Next Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
stonetherippa Geschrieben 19. November 2007 Autor Teilen Geschrieben 19. November 2007 Es erstellt mir die XML wie ich sie will, nur,will ich hier an den Stellen, wo die Variablen Name, Alter, Nachname stehen, die Ergebnisse der Db einfügen, hier der gesamte Code: Dim vstr = ConfigurationManager.ConnectionStrings("new_Cs").ConnectionString Dim con As New SqlConnection(vstr) 'SQL Query Dim sql_name As String = "SELECT name,nachname,alter FROM Personen WHERE Personen.name IS NOT NULL" Dim data As New SqlDataAdapter(sql_name,con) Dim ds As DataSet = New DataSet() data.Fill(ds, "Personen") Dim varName As String = "stName" Dim varNachname As String = "stNachname" Dim varAlta As Integer = 66 Dim wset As New XmlWriterSettings() wset.Indent = True wset.NewLineOnAttributes = True try Using writer As XmlWriter = XmlWriter.Create("C:\xxx.xml",wset) writer.WriteStartDocument writer.WriteStartElement("Personen") writer.WriteStartElement("Person") writer.WriteStartAttribute("Nachname") writer.WriteValue(varNachname) 'Hier den Nachnamen aus der Db writer.WriteEndAttribute() writer.WriteStartAttribute("Name") writer.WriteValue(name) 'Hier den Namen aus der Db writer.WriteEndAttribute() writer.WriteStartAttribute("Alta") writer.WriteValue(varAlta) 'Hier das Alter aus der Db writer.WriteEndAttribute() writer.WriteEndElement() writer.WriteEndElement() writer.WriteEndDocument() writer.Flush() lbl2.Text = "XML-Datei erfolgreich erstellt" End Using catch ex As Exception lbl2.Text = "EEERRROOORR!!!" & ex.Message End Try End Sub ThX Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
stonetherippa Geschrieben 19. November 2007 Autor Teilen Geschrieben 19. November 2007 genau sowas,danke:-)wie schaffe ich es jetzt dass er mir die Namen nicht alle Hintereinander sondern alle einzeln reinschreibt? im Moment: <Personen> <Person Nachname="Lustig" Name="Thomas Dieter Franz Ullrich Lars" Alter="22"/> </Personen> und wie mache ich es dass es so wird: <Personen> <Person Nachname="Lustig" Name="Thomas" Alter="44"/> <Person Nachname="Frech" Name="Dieter" Alter="44"/> </Personen> gaub ich check es nicht....:old Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
stonetherippa Geschrieben 20. November 2007 Autor Teilen Geschrieben 20. November 2007 vielleicht einen kleinen Tipp? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.