gpt4 book ai didi

vb.net - 如何回滚失败的 InsertOnSubmit? (VB.NET LINQ)

转载 作者:行者123 更新时间:2023-12-02 01:17:08 31 4
gpt4 key购买 nike

当 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_Facilities.InsertOnSubmit(NewFac)”

我认为我需要以某种方式删除失败的“NewFac”,其中包含捕获中“db.t_Facilities.InsertOnSubmit(NewFac)”中的不正确值,但我没有找到一种方法来做到这一点? p>

仅供引用:我从这里得到了这种方法的原理:https://msdn.microsoft.com/en-us/library/bb763516

如有任何帮助,我们将不胜感激。

最佳答案

现在这在技术上可能不正确,所以有人通知了;请给出这个有效的真正原因(所以它并不是真正基于除了它有效之外的任何事实陈述,并且完全是我的意见 - 但它有效):

在阅读其他有类似问题的人提出的几个问题时,我突然想到了解决方案(所有这些问题都使用以编程方式循环 DataContext 寻找匹配的各种方法),这些更改只是添加了 DataContext,它似乎有效地起作用就像数据库的脱机 CLR,所以如果将 InsertOnSubmit 添加到其中,按理说,DeleteOnSubmit 应该将其删除,对吗?

考虑到这一点,我尝试了以下方法:

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)

db.t_Facilities.DeleteOnSubmit(NewFac)

Exit Sub 'Takes the user back to the form to correct the value
End Try

成功了! :D

所以我对于它为什么起作用可能是完全错误的(请告诉我为什么 - 我真的很想知道),但它起作用了。

编辑:如果有人能给出其有效的正确原因,我会接受他们的答案,而不是我自己的

关于vb.net - 如何回滚失败的 InsertOnSubmit? (VB.NET LINQ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38511419/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com