Hallo liebe Programmierer ich bins mal wieder:) Folgendes Problem: Ich habe ein Datagridview mit Werten aus einer Datatable aus einem Dataset von einer Datenbank. Der Tabelle ist eine weitere Tabelle untergeordnet. Nun versuche ich aus der übergeordneten Tabelle eine Zeile zu löschen. Ich selektiere die Zeile und betätige einen Lösch-Button. Zuerst suche ich ob sich Zeilen aus der untergeordneten Tabelle auf die Übergeordnete beziehen. Ist dies der Fall lösche ich alle. Anschließend lösche ich die selektierte Zeile der übergeordneten Tabelle. Jedoch bekomme ich folgende Fehlermeldung:
Weis leider nicht was ich dagegen unternehmen kann und hoffe auf eure Hilfe. Hier noch mein Code zum Löschen:
Euer Steak
Ein Ausnahmefehler des Typs "System.Data.SqlClient.SqlException" ist in System.Data.dll aufgetreten.
Zusätzliche Informationen: Die DELETE-Anweisung steht in Konflikt mit der REFERENCE-Einschränkung 'FK_tra_f_pruefpunkt_f_pruefpunkt'. Der Konflikt trat in der eepa-Datenbank, Tabelle 'dbo.tra_f_pruefpunkt', column 'tra_to_fppe_id' auf.
Die Anweisung wurde beendet.
Weis leider nicht was ich dagegen unternehmen kann und hoffe auf eure Hilfe. Hier noch mein Code zum Löschen:
VB.NET-Quellcode
- If MsgBox("Sind Sie sicher, dass Sie den Standard-Prüfpunkt " & dgv_Standard.CurrentRow.Cells("fppe_pruefpunkt").Value.ToString & " wirklich löschen wollen?", vbOKCancel) = 1 Then
- Dim sql As String
- sql = "SELECT * FROM tra_f_pruefpunkt WHERE tra_to_fppe_id = '" & dgv_Standard.CurrentRow.Cells("fppe_id").Value & "'"
- Dim da As New SqlDataAdapter(sql, My.Settings.eepaConnectionString)
- Dim dt As New DataTable
- da.Fill(dt)
- For Each dr As DataRow In dt.Rows
- Tra_f_pruefpunktTableAdapter.DeleteLanguage(dr.Item("tra_id"))
- Next
- EepaDataSet.tra_f_pruefpunkt.AcceptChanges()
- dgv_Standard.Rows.Remove(dgv_Standard.CurrentRow) 'Entfernt Zeile aus dem DGV speichert es jedoch noch nicht
- Me.F_pruefpunktTableAdapter.DeleteQuery(dgv_Standard.CurrentRow.Cells("fppe_id").Value) 'Anschließend wird der PP gelöscht
- End If
Euer Steak