Hallo und guten Abend zusammen.
Beschäftige mich seit zwei Tagen mit dem gleichen Problem.
Binde wechselnde Datenquellen an ein DGV.
Problem 1:
Bei der Datensatzlöschung wird immer der erste Datensatz des DGV und nicht der markierte Datensatz gelöscht.
Problem 2:
Möchte ich nach der Neuanlage eines Datensatzes diesen wieder löschen, erhalte ich eine Parallelitätsverletzung.
Spoiler anzeigen
Hier nun das Löschen
Beschäftige mich seit zwei Tagen mit dem gleichen Problem.
Binde wechselnde Datenquellen an ein DGV.
Problem 1:
Bei der Datensatzlöschung wird immer der erste Datensatz des DGV und nicht der markierte Datensatz gelöscht.
Problem 2:
Möchte ich nach der Neuanlage eines Datensatzes diesen wieder löschen, erhalte ich eine Parallelitätsverletzung.
VB.NET-Quellcode
- Me.DGV_Dokumente.DataSource = Nothing
- Me.DGV_Dokumente.Rows.Clear()
- Dokumente.Filterdaten = New DataView
- Dokumente.DataQuelle = New BindingSource
- If Me.DatenModus = "A" Then
- Dim FilterAlle = From order In Dokumente.DataTabelle.AsEnumerable()
- Where order.Field(Of Integer)("Nummer") > 100000
- Select order
- Dokumente.Filterdaten = FilterAlle.AsDataView
- Dokumente.DataQuelle.DataSource = Dokumente.Filterdaten
- End If
- If Me.DatenModus = "B" Then
- Dim FilterBrief = From order In Dokumente.DataTabelle.AsEnumerable()
- Where order.Field(Of Boolean)("Brief") = True
- Select order
- Dokumente.Filterdaten = FilterBrief.AsDataView
- Dokumente.DataQuelle.DataSource = Dokumente.Filterdaten
- End If
- If Me.DatenModus = "F" Then
- Dim FilterFax = From order In Dokumente.DataTabelle.AsEnumerable()
- Where order.Field(Of Boolean)("Fax") = True
- Select order
- Dokumente.Filterdaten = FilterFax.AsDataView
- Dokumente.DataQuelle.DataSource = Dokumente.Filterdaten
- End If
- With Me.DGV_Dokumente
- .DataSource = Dokumente.DataQuelle.DataSource
- .SelectionMode = DataGridViewSelectionMode.FullRowSelect
- .EnableHeadersVisualStyles = False
- .Columns("ID").Visible = False
- .Columns("Type").Visible = False
- .Columns("Vorlagennummer").Visible = False
- .Columns("Aktenummer").Visible = False
- .Columns("Kontaktnummer").Visible = False
- .Columns("Speichername").Visible = False
- .Columns("Brief").Visible = False
- .Columns("Fax").Visible = False
- .Columns("Email").Visible = False
- .Columns("Betreff").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
- .Columns("Bezeichnung").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
- .Columns("Datum").DefaultCellStyle.Format = "d"
- End With
Hier nun das Löschen
VB.NET-Quellcode
- If Vorgang = "L" Then ' Löschung
- Dokumente.Speicherdatei = Dokumente.Pfad & Me.DGV_Dokumente.CurrentRow.Cells("Speichername").Value.ToString
- ' If IO.File.Exists(Dokumente.Speicherdatei) Then IO.File.Delete(Dokumente.Speicherdatei)
- ' Me.DGV_Dokumente.Rows.Remove(Me.DGV_Dokumente.CurrentRow) 'Funktioniert
- Me.DGV_Dokumente.EndEdit()
- Dokumente.DataQuelle.RemoveCurrent()
- 'Me.Validate()
- 'Dokumente.Speichern()
- Me.Bearbeitung_Cleaing()
- End If
Gruß Markus