Hallo liebe VB-Fans,
ich brauche mal wieder Eure Hilfe.
Ich glaube, dass das wohl nie aufhört.
Erst einmal der Quelltext:
Kleine Erläuterung hierzu:
ktoAnlegen ist aus dem Grid Anlegen und eine tempörare Table.
kAuszug ist eine Table aus der DB.
Die Daten sollen, wenn sie nicht in der DB vorhanden sind hineingeschrieben werden. Das klappt soweit. Ich hänge derzeit nur leider im Else-Block.
Bei dataContext.SubmitChanges() bleibt der Debugger stehen und es kommt folgende Fehlermeldung:
"Eine Entität, deren Schlüssel bereits verwendet wird, kann nicht hinzugefügt werden"
Das verstehe ich nicht so ganz. Ich will ja keinen neuen Datensatz hinzufügen oder so etwas. Und was bedeutet hier in dem Kontext verwendet? Wie und wo verwende ich denn da etwas?
Habe Ihr vielleicht einen Ratschlag oder einen Lösungsansatz für mich?
Auch wenn Ihr Euch nicht sicher seid, ob es klappen könnte, postet ruhig etwas. Ich werde es schon ausprobieren.
Danke!!!
Viele Grüße
Trigoor
ich brauche mal wieder Eure Hilfe.
Ich glaube, dass das wohl nie aufhört.
Erst einmal der Quelltext:
VB.NET-Quellcode
- Private Sub btnApply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnApply.Click
- Dim dtKontoAnlegen = (From k2 In DsCC11.KONTO_ANLEGEN _
- Select k2)
- Dim dataContext As New CC1DataContext()
- Dim kAuszug = (From k In dataContext.KONTOAUSZUG _
- Select k)
- For Each row In dtKontoAnlegen
- If Not row.IsAnlegenNull AndAlso row.Anlegen = True Then
- Dim koAusz As New KONTOAUSZUG
- With koAusz
- ' Prüfen ob in Kontoauszug schon ein Datensatz vorhanden ist
- If kAuszug.Count = 0 Then
- ' Hier wird ein neuer Datensatz angelegt
- Dim g As Guid = Guid.NewGuid
- .idKontoauszug = g
- .BankNameKontrahent = row.Bank
- .KtoKontrahent = row.Kontonummer
- .BLZKontrahent = row.BLZ
- Else
- Dim str5 As String = row.idBankKonto.ToString
- Dim str6 As String = koAusz.idKontoauszug.ToString
- For Each row2 In kAuszug
- 'Wenn es schon exisitiert, erfolgt nur ein Update
- If row2.BankNameKontrahent = row.Bank AndAlso row2.KtoKontrahent = row.Kontonummer _
- AndAlso row2.BLZKontrahent = row.BLZ Then
- .BankNameKontrahent = row.Bank
- .KtoKontrahent = row.Kontonummer
- .BLZKontrahent = row.BLZ
- End If
- Next
- End If
- End With
- dataContext.SubmitChanges()
- MessageBox.Show("Änderungen wurden erfolgreich in die Datenbank übernommen")
- End If
- Next
- End Sub
Kleine Erläuterung hierzu:
ktoAnlegen ist aus dem Grid Anlegen und eine tempörare Table.
kAuszug ist eine Table aus der DB.
Die Daten sollen, wenn sie nicht in der DB vorhanden sind hineingeschrieben werden. Das klappt soweit. Ich hänge derzeit nur leider im Else-Block.
Bei dataContext.SubmitChanges() bleibt der Debugger stehen und es kommt folgende Fehlermeldung:
"Eine Entität, deren Schlüssel bereits verwendet wird, kann nicht hinzugefügt werden"
Das verstehe ich nicht so ganz. Ich will ja keinen neuen Datensatz hinzufügen oder so etwas. Und was bedeutet hier in dem Kontext verwendet? Wie und wo verwende ich denn da etwas?
Habe Ihr vielleicht einen Ratschlag oder einen Lösungsansatz für mich?
Auch wenn Ihr Euch nicht sicher seid, ob es klappen könnte, postet ruhig etwas. Ich werde es schon ausprobieren.
Danke!!!
Viele Grüße
Trigoor
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Trigoor“ () aus folgendem Grund: EDIT: Ich hoffe doch, dass der Quelltext bei Euch richtig angezeigt wird. EDIT 2: Seltsamweise war der SC wieder linksbündig. Habe ihn jetzt wieder richtig ausgerichtet.