SubmitChanges が失敗したときに、失敗した InsertOnSubmit を元に戻すのに問題があります。コードは次のとおりです。
Dim NewFac As New t_Facility With
{.FK_Instance_ID = guInstance_ID,
.FK_AccountType_ID = guAccountType_ID,
.FK_ATP_ID = guATP_ID,
.FK_Repayment_ID = guRepaymentType_ID,
.FK_InterestType_ID = guInterestType_ID,
.FK_FT_ID = guFacilitiesType_ID,
.NewRecord = bNewRecord,
.IndexNum = iIndexNum,
.SortCode = sSortCode,
.AccountNumber = sAccountNumber,
.Balance = decBalance,
.LastSanction = decLastSanctioned,
.Proposed = decProposed,
.Term_MTHs = iTerm_MTHS,
.Term_Expiry = dTerm_Expiry,
.InterestRate = decInterestRate,
.ArrangementFee = decArrangementFee,
.DateTime_From = Now(),
.ID = guFacilities_ID}
db.t_Facilities.InsertOnSubmit(NewFac)
Try
db.SubmitChanges()
Catch e As Exception
Console.WriteLine(e)
MessageBox.Show(e.Message & ". Please correct the field and try again", "ERROR", MessageBoxButton.OK, MessageBoxImage.Stop)
Exit Sub 'Takes the user back to the form to correct the value
End Try
再度送信すると、ユーザーが入力した新しい値を無視して、元の送信と同じ値で同じ時点で失敗します。
「NewFac」の値は、修正された新しい値です。デバッグでこの行を手動でチェックしました: "db.t_Facility.InsertOnSubmit(NewFac)"
キャッチで「db.t_Facilities.InsertOnSubmit(NewFac)」から誤った値を含む失敗した「NewFac」をどうにかして削除する必要があると思いますが、これを行う方法がわかりませんか?
参考までに: ここからこのアプローチの原則を取得しました: https://msdn.microsoft.com/en-us/library/bb763516
どんな助けでも大歓迎です。