Mehrere Tabellen als xml speichern

  • VB.NET

Es gibt 27 Antworten in diesem Thema. Der letzte Beitrag () ist von guccini.

    Mehrere Tabellen als xml speichern

    hallo zusammen , habe problem beim speichern von 2 tabellen, jede tabelle soll als xml gespeichert werden, jedoch wird ein teil von einder tabelle in die andere übernommen, kann den fehler auch nicht finden.
    der ablauf soll so statt finden , das wenn ein neuer eintrag gemacht wird soll es immer als erstes in der zeile stehn, also ein rüchwärts eintrag.
    Hoffe das jemand helfen kann

    werkzeuge.xsd :

    Form:


    VB.NET-Quellcode

    1. Imports System.Xml
    2. Imports System.Data
    3. Public Class Form6
    4. Private xmlDataBaseData As String = "O:\Datenbank\vtc.xml"
    5. Private xmlDataBaseData1 As String = "O:\Datenbank\mtv.xml"
    6. Private Sub Form6_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    7. If My.Computer.FileSystem.FileExists(xmlDataBaseData) = True Then
    8. Werkzeuge.ReadXml(xmlDataBaseData)
    9. End If
    10. If My.Computer.FileSystem.FileExists(xmlDataBaseData1) = True Then
    11. Werkzeuge.ReadXml(xmlDataBaseData1)
    12. End If
    13. End Sub
    14. Private Sub speichern_Click(sender As System.Object, e As System.EventArgs) Handles speichern.Click
    15. Me.Validate()
    16. Vtc30BindingSource.EndEdit()
    17. Werkzeuge.WriteXml(xmlDataBaseData)
    18. End Sub
    19. Private Sub Vtc30DataGridView_CellFormatting1(sender As Object, e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles Vtc30DataGridView.CellFormatting
    20. Vtc30DataGridView.Rows(1).DefaultCellStyle.BackColor = Color.Green
    21. Vtc30DataGridView.Rows(0).DefaultCellStyle.BackColor = Color.Red
    22. Vtc30DataGridView.Sort(Vtc30DataGridView.Columns(0), System.ComponentModel.ListSortDirection.Descending) 'rückwärts auflisten
    23. Vtc30DataGridView.Rows(0).Selected = False
    24. End Sub
    25. Private Sub DateTimePicker1_ValueChanged(sender As System.Object, e As System.EventArgs) Handles DateTimePicker1.ValueChanged
    26. DateTimePicker1.Format = DateTimePickerFormat.Custom
    27. DateTimePicker1.CustomFormat = "dddd, dd.MM.yyyy HH:mm "
    28. End Sub
    29. Private Sub speichern1_Click(sender As System.Object, e As System.EventArgs) Handles speichern1.Click
    30. Me.Validate()
    31. MtvBindingSource.EndEdit()
    32. Werkzeuge.WriteXml(xmlDataBaseData1)
    33. End Sub
    34. Private Sub DataGridView1_CellFormatting(sender As Object, e As System.Windows.Forms.DataGridViewCellFormattingEventArgs)
    35. MtvDataGridView.Rows(1).DefaultCellStyle.BackColor = Color.Green
    36. MtvDataGridView.Rows(0).DefaultCellStyle.BackColor = Color.Red
    37. MtvDataGridView.Sort(MtvDataGridView.Columns(0), System.ComponentModel.ListSortDirection.Descending) 'rückwärts auflisten
    38. MtvDataGridView.Rows(0).Selected = False
    39. End Sub
    40. Private Sub DateTimePicker2_ValueChanged(sender As System.Object, e As System.EventArgs) Handles DateTimePicker2.ValueChanged
    41. DateTimePicker2.Format = DateTimePickerFormat.Custom
    42. DateTimePicker2.CustomFormat = "dddd, dd.MM.yyyy HH:mm "
    43. End Sub
    44. End Class
    Du speicherst ja das gesamte Dataset 'Werkzeuge' mit beiden Tabellen in die .XML!
    Du kannst auch die jeweiligen Tabellen einzeln mit .WriteXML() speichern. Das macht aber keinen richtigen Sinn!
    Speichere einfach das Dataset. Laden kannst du es dann auch mit .ReadXML()...
    hi VB1963..!

    also statt so Werkzeuge.ReadXml(xmlDataBaseData) nur so Werkzeuge.nexus1.ReadXml(xmlDataBaseData) und beim schreiben dann das selbe, Werkzeuge.nexus1.WriteXml(xmlDataBaseData), richtig?
    und der datetimepicker funzt nicht so richtig, würde gerne das es automatisch eingetragen wird datum und uhrzeit.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „guccini“ ()

    habe es so gemacht:

    VB.NET-Quellcode

    1. Private Sub DateTimePicker2_ValueChanged(sender As System.Object, e As System.EventArgs) Handles DateTimePicker2.ValueChanged
    2. Datum = DateTime.Now
    3. DateTimePicker2.Format = DateTimePickerFormat.Custom
    4. DateTimePicker2.CustomFormat = "dddd, dd.MM.yyyy HH:mm "
    5. End Sub



    bekomme fehlermeldung

    VB1963 schrieb:



    VB.NET-Quellcode

    1. DateTimePicker2.Value = DateTime.Now


    so tust du ihn vorbelegen, weis zwar nicht was du dann damit vorhast im ValueCanged bringt das nichts...
    Wie man den Picker bindet, glaube haben wir letztes mal besprochen...


    die zeile hab ich gelöscht......komme durcheinander, hatte den code hier eingesetzt:

    VB.NET-Quellcode

    1. Dim rw = DirectCast(DirectCast(Me.BohrerBindingSource.Current, DataRowView).Row, bohrerRow)
    2. rw.Datum = DateTime.Now


    aber da kam es zu fehlern....!
    ich wollte das beim eintrag in eine zeile, das datum und uhrzeit automatisch in der "Datum" zeile eingefügt wird.
    Den DateTimePicker hab ich komplett raus genommen dafür hab ich einen TextBox gebunden an "Datum", wenn ich die zeile anklicke erscheint das Datum in der TextBox.
    Ist mir bis jetzt nicht gelungen..!
    so bis jetzt hat alles gut geklappt.....!
    habe fehler entdeckt:
    In der Zeile 27, wenn die Tabelle leer ist treten immer fehler auf ,aber wenn sie gefüllt ist dann ist alles ok, was mache ich falsch?

    VB.NET-Quellcode

    1. Imports System.Xml
    2. Imports System.Data
    3. Private xmlDataBaseData As String = "O:\Datenbank\vtc.xml"
    4. Private Sub Form6_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    5. If My.Computer.FileSystem.FileExists(xmlDataBaseData) = True Then
    6. Werkzeuge.ReadXml(xmlDataBaseData)
    7. End If
    8. End Sub
    9. Private Sub speichern_Click(sender As System.Object, e As System.EventArgs) Handles speichern.Click
    10. Me.Validate()
    11. Vtc30BindingSource.EndEdit()
    12. Werkzeuge.WriteXml(xmlDataBaseData)
    13. Dim rw = DirectCast(DirectCast(Me.Vtc30BindingSource.Current, DataRowView).Row, werkzeuge.vtc30Row)
    14. rw.Datum = DateTime.Now
    15. End Sub
    16. Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    17. Me.Vtc30BindingSource.RemoveCurrent()
    18. End Sub
    19. Private Sub Vtc30DataGridView_CellFormatting1(sender As Object, e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles Vtc30DataGridView.CellFormatting
    20. Vtc30DataGridView.Rows(1).DefaultCellStyle.BackColor = Color.Green '<--------------------
    21. Vtc30DataGridView.Rows(0).DefaultCellStyle.BackColor = Color.Red
    22. Vtc30DataGridView.Sort(Vtc30DataGridView.Columns(0), System.ComponentModel.ListSortDirection.Descending) 'rückwärts auflisten
    23. Vtc30DataGridView.Rows(0).Selected = False
    24. End Sub
    25. Private Sub Vtc30DataGridView_MouseWheel(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Vtc30DataGridView.MouseWheel
    26. Dim currentIndex As Integer = Me.Vtc30DataGridView.FirstDisplayedScrollingRowIndex
    27. Dim scrollLines As Integer = SystemInformation.MouseWheelScrollLines
    28. Select Case e.Delta
    29. Case 120 'Scrolling up
    30. 'We cannot scroll up past row 0.
    31. Me.Vtc30DataGridView.FirstDisplayedScrollingRowIndex = Math.Max(0, currentIndex - scrollLines)
    32. Case -120 'Scrolling down
    33. Me.Vtc30DataGridView.FirstDisplayedScrollingRowIndex = currentIndex + scrollLines
    34. End Select
    35. End Sub
    36. End Class