これは長い質問かもしれませんが、少しご容赦ください。
私は列に取り組んでいDatagridview1
ますForm1
BranchCode("cells(2) ,FormCode("cells(3)")), Quantity("cells(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
合計してから追加しますQuantity
FormCode and BranchCode
DGV2
例: DGV1 の結果
BranchCode | FormCode | Quantity
001 Frm1 30
002 Frm2 -10
次に、DGV2に追加した後、これが結果になります
DGV2の結果
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
の宣言occurences dictionary
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" Input string was not in a correct format
長い投稿で申し訳ありませんが、私はやろうとしましたが、エラーを削除しません。