.net - FormatException 未处理 vb.net

标签 .net vb.net winforms exception datagridview

这可能是一个很长的问题,但请耐心等待。

我在 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/

相关文章:

c# - 免费的 WinForms 图像编辑器控件

c# - 通过 Sql Server 数据库更改通知 winforms 应用程序

c# - 找出两本词典之间的区别

java - C# 创建的新进程无法访问某些文件

javascript - 如何使用 vb.net 中的按钮在新选项卡中打开 url,该按钮使用命令名称而不是通过单击事件

vb.net - 从父窗体 MenuStrip 中删除 ToolStripMenuItem

c# - 上传到 FTP 的文件一旦到达目的地就会损坏

c# - 即使在实现 IEnumerable 时也没有显示扩展方法

.net - NHibernate 和 WCF 一起使用时需要注意什么?

mysql - 由于空错误 [HY000] [MySQL][ODBC 3.51,插入失败