Die Community zu .NET und Classic VB.
Menü

Tipp-Upload: VB.NET 0342: BindingSource.EndEdit/CancelEdit

 von 

Über den Tipp  

Dieser Tippvorschlag ist noch unbewertet.

Der Vorschlag ist in den folgenden Kategorien zu finden:

  • Datenbanken und XML
  • Listensteuerelemente

Dem Tippvorschlag wurden folgende Schlüsselwörter zugeordnet:
BindingSource,EndEdit,CancelEdit

Der Vorschlag wurde erstellt am: 07.02.2009 21:06.
Die letzte Aktualisierung erfolgte am 07.02.2009 21:12.

Zurück zur Übersicht

Beschreibung  

Das in  Tippvorschlag 340 (Dataset ohne Datenbank verwenden) zu Dataset.ReadXml() / .WriteXml() gesagte gilt auch für diesen Tipp in vollem Umfang. Als Variation wird hier jedoch ein "EinzelblattView" angezeigt. Außerdem wird die Wirkung von BindingSource.EndEdit() / .CancelEdit() demonstriert:
Üblicherweise wird ein in Bearbeitung befindlicher Datensatz von den Steuerelementen in genau dem Moment ins Dataset übernommen, wenn ein neuer Datensatz angewählt wird. Wie soll nun die Anwendung sich verhalten, wenn der "Speichern"-Button betätigt wird, während ein Datensatz in Bearbeitung ist?
Defaultmäßig wird er verworfen, denn er könnte ja auch nur halbfertig editiert sein.
Mit BindingSource.EndEdit() kann jedoch erzwungen werden, daß der aktuelle Datensatz ins Dataset übernommen wird, und somit mit abgespeichert.

Schwierigkeitsgrad

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

Download:

Download des Beispielprojektes [21,15 KB]

' Dieser Source stammt von http://www.activevb.de
' und kann frei verwendet werden. Für eventuelle Schäden
' wird nicht gehaftet.

' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
' Ansonsten viel Spaß und Erfolg mit diesem Source!
'
' Beachten Sie, das vom Designer generierter Code hier ausgeblendet wird.
' In den Zip-Dateien ist er jedoch zu finden.

' ----------- Anfang Projektgruppe EndEditDemo.sln -----------
' ---------- Anfang Projektdatei EndEditDemo.vbproj ----------
' -------------- Anfang Datei frmEinzelblatt.vb --------------

' Angezeigt wird ein "Einzelblatt-View" der Kategorien: Links im Grid kann man eine
' Kategorie wählen, rechts ein Eingabe-Bereich, wo per Textbox die einzelnen Eigenschaften
' der angewählten Kategorie editiert werden können

Public Class frmEinzelblatt

    Private _DataFile As String = "DBSample.DataSet.xml"

    Private Sub frmEinzelblatt_Load(ByVal sender As Object, ByVal e As EventArgs) Handles _
        MyBase.Load

        Reload()

    End Sub

    Private Sub Button_Click(ByVal sender As Object, ByVal e As EventArgs) Handles _
        btCancelEdit.Click, btEnforceEndEdit.Click, btReload.Click, btSave.Click

        Select Case True

            Case sender Is btSave
                Save()

            Case sender Is btReload
                Reload()

            Case sender Is btEnforceEndEdit
                Me.CategoryBindingSource.EndEdit()

            Case sender Is btCancelEdit
                Me.CategoryBindingSource.CancelEdit()

        End Select

    End Sub

    Private Sub Reload()

        Me.DBSampleDataSet.Clear()
        Me.DBSampleDataSet.ReadXml(_DataFile)

    End Sub

    Private Sub Save()

        Me.DBSampleDataSet.WriteXml(_DataFile)

    End Sub

End Class

' --------------- Ende Datei frmEinzelblatt.vb ---------------
' ----------- Ende Projektdatei EndEditDemo.vbproj -----------
' ------------ Ende Projektgruppe EndEditDemo.sln ------------

	

Diskussion  

Diese Funktion ermöglicht es, Fragen, die die Veröffentlichung des Tipps betreffen, zu klären, oder Anregungen und Verbesserungsvorschläge einzubringen. Nach der Veröffentlichung des Tipps werden diese Beiträge nicht weiter verlinkt. Allgemeine Fragen zum Inhalt sollten daher hier nicht geklärt werden.
Folgende Diskussionen existieren bereits

Kernfusion - Dario 12.02.2009 18:14

Um eine Diskussion eröffnen zu können, müssen sie angemeldet sein.