Announcement

Collapse
No announcement yet.

DataAdapter.update erreignis

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

  • DataAdapter.update erreignis

    Moin,
    Ich habe ein Problem mit dem updaten meiner Daten.

    Ich habe in meinem DGV ein button mit dem ich einen Wert setzten möchte.(Auf löschen setzten. geloescht = true)

    Ich benutze dazu das cellklick erreignis vom DGV.

    [highlight=vb.net]
    Me.DGV.Rows(e.RowIndex).Cells("geloescht").Value = "true"
    Dim cmdb As SqlClient.SqlCommandBuilder
    cmdb = New SqlClient.SqlCommandBuilder(da)
    da.Update(dt_zeiten)
    Me.DGV_zeiten.Refresh()
    [/highlight]

    Sobald ich auf den Button drücke ändert sich auch der Wert wie gewünscht. Jedoch sollte diese Zeile aus dem DGV verschwinden.
    Tut es aber nicht.

    Er müsste doch normalerweise mit dem refresh das DGV neu laden und somit wegen der Filterung den Datensatz nicht mehr anzeigen.

  • #2
    Häh? Wo steht denn etwas davon, dass in der DataTable ein Datensatz (DataRow) gelöscht werden soll? Mit dem Wort "geloescht" kann doch der Compiler oder das Framework überhaupt nichts verbinden.

    Wenn die Zeile in der DataTable per Delete() als gelöscht markiert wird - also auf DataRowState.Deleted gesetzt wird -, steht sie sofort nicht mehr im DGV. Das DbDataAdapter.Update sorgt "nur" für die Übertragung in die Datenbank, hat aber mit dem DGV nichts, aber auch gar nichts zu tun.

    Wie wäre es, wenn du die entsprechenden Kapitel im OpenBook durcharbeiten würdest?

    Jürgen

    Übrigens: Update ist eine Methode, kein Ereignis.

    Comment


    • #3
      Danke, dies war mir klar. Jedoch habe ich eine Spalte in meiner Tabelle die den Datensatz als gelöscht markiert. Sinn und zweck des ganzen ist, das die Datensätzte wiederhergestellt werden können.

      Auf dem DGV liegt eine filterung wo nur Datensätzte drin stehen wo Spalte "geloescht = false" ist.

      ich hoffe ich konnte so einen einblick verschaffen

      Comment


      • #4
        Dann solltest du dir mal die Informationen zu DataRowState genauer vornehmen; das kannst du nämlich auch für die Filterung ausnutzen. Also: wenn ein Datensatz gelöscht werden soll, dann wird DataRow.Delete benutzt. Die Filterung geht über DataRowState. Das "Rückgängigmachen" geht über RejectChanges.

        Es bleibt dabei: Bei deinem Vorgehen weiß die Update-Methode nichts davon, was es mit der gelöscht-Spalte auf sich hat.
        Wie wäre es, wenn du die entsprechenden Kapitel im OpenBook durcharbeiten würdest?
        Jürgen

        Comment

        Working...
        X