我调用一个函数(SaveChanges)来访问我的业务/数据层,并将所有更改保存到标记为添加或更新并标记为要处理的字段.此功能用于在60多分钟前完成工作.
发生的事情是突然该函数返回false.在通过代码调试之后,当它命中Return时,本地布尔值设置为True ...但是当它返回到调用方法(并使用返回值)时,它现在是False.
正如我所说,我逐行检查并调试它,然后我添加了一块手表.有趣的是,有一个点将布尔值设置为false,当我在该点放置一个断点时,它永远不会到达.
这是功能:
Private Function SaveChanges() As Boolean
Dim blnSaved As Boolean = True
Dim saveableRows As List(Of DataRow) = (From d As DataRow In _listData.Tables(0).Rows _
Where Not d("Marking") = "Duplicate" _
And d("Process") = True _
Select d).ToList()
If saveableRows.Count > 0 Then
For Each drRow As DataRow In saveableRows
Dim data As IDataEntity = DataEntities.GetData(_tableName)
If drRow("Marking") = "Update" Then
'UPDATE
data.UpdateItem(drRow.ItemArray)
Else
'ADD
data.AddItem(drRow.ItemArray)
End If
If data.HasErrors Then
blnSaved = False 'Never reaches this part ... !?!?!
End If
Next
Else
blnSaved = True
End If
End Function
Run Code Online (Sandbox Code Playgroud)
以下是我如何使用该功能:
If SaveChanges() Then
Dim frmTableView As frmTableView = New frmTableView(_listData.Tables(0).TableName)
If Not Me.MdiParent Is Nothing Then
frmTableView.MdiParent = Me.MdiParent
End If
frmTableView.Show()
Me.Close()
Else
MessageBox.Show("Unable to save the list. IT has been notified.", "Save Failed", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Run Code Online (Sandbox Code Playgroud)
我花了太多时间在这上面,并认为是时候寻求帮助了.
谢谢