这可能是一个很长的问题,但请耐心等待。
我在 Form1
上有一个 Datagridview1
,其列 BranchCode("cells(2) ,FormCode("cells(3)")), Quantity( “细胞(5)”)
现在我们假设它是这样的
DGV1
BranchCode | FormCode | Quantity
001 Frm1 10
002 Frm2 -10
001 Frm1 20
现在在 DGV2 上,假设我有一个具有相同分支代码和表单代码的数据
DGV2
BranchCode | FormCode | Quantity
001 Frm1 50
002 Frm2 50
现在,下面的代码循环遍历 DGV1
,然后将具有相同 FormCode 和 BranchCode
的所有 Quantity
相加,然后将其添加到 DGV2
例如:DGV1 结果
BranchCode | FormCode | Quantity
001 Frm1 30
002 Frm2 -10
然后将其添加到 DGV2 后,这就是结果
DGV 2 结果
BranchCode | FormCode | Quantity
001 Frm1 80
002 Frm2 40
代码
For Each xRows In MDIAdjustment.oTransferRows.Where(Function(x) x.Cells("GVPosted").Value.ToString() = "No")
If (occurences.ContainsKey(xRows.Cells(3).Value.ToString())) Then
occurences(xRows.Cells(3).Value.ToString()).Quantity = Double.Parse(occurences(xRows.Cells(3).Value.ToString()).ToString()) + Double.Parse(xRows.Cells(5).Value.ToString())
Else
occurences.Add(xRows.Cells(3).Value.ToString(), New CustomValues2 With {.Code = xRows.Cells(3).Value.ToString(), .Branch = xRows.Cells(2).Value.ToString(), .Description = xRows.Cells(4).Value.ToString(), .Quantity = Double.Parse(xRows.Cells(5).Value.ToString()) })
End If
Next
声明出现字典
Dim occurences As New Dictionary(Of String, CustomValues2)
Class CustomValues2
Public Property Code() As String
Public Property Branch() As String
Public Property Description() As String
Public Property Quantity() As Double
End Class
问题是,当我仅使用正整数进行计算时,没有问题,但是当我开始添加负数时,我在这一行出现错误
occurences(xRows.Cells(3).Value.ToString()).Quantity = Double.Parse(occurences(xRows.Cells(3).Value.ToString()).ToString()) + Double.Parse(xRows.Cells(5).Value.ToString())
说FormatException was Unhandled”输入字符串的格式不正确
抱歉,对于这么长的帖子,我已经尝试做一些事情,但他们没有消除错误。
最佳答案
将错误行更改为:
occurences(xRows.Cells(3).Value.ToString()).Quantity = occurences(xRows.Cells(3).Value.ToString()).Quantity + Double.Parse(xRows.Cells(5).Value.ToString())
您需要添加到数量属性,因此您需要获取其当前值。
关于.net - FormatException 未处理 vb.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13736693/