在我的vb.net项目中,我有此表单,用于将额外费用添加到订单中(例如,交付成本)。
在此示例中,货运编号是相同的,因为货运用于全订单,而不是每行都有货运。但是,可以选择为每个单独的订单行添加不同的运费值,因此数量会有所不同(例如7和8),因此每个行的值也会不同。
当按下添加按钮时,行或订单(取决于货运方式)将被添加到标有“货运”的网格中。但是,数据仅存储在中DataTable
,然后传递到Order Save函数中,从该函数将行复制到数据库中,然后从中删除DataTable
。
现在,请注意textbox
标有“总货运量”的标签…目前正在对的每一行进行迭代DataTable
,并将所有总计加在一起。如果运费全部不同,这很好,但是,如果按订单添加运费,并且如上所述有2行,则该值应为15,而不是30(当前显示)。
因此,有没有办法让我只能遍历具有不同Freight#值的行,以使其不会两次添加相同的行值?我认为aSQL SELECT DISTINCT
在这里不起作用,因为它只是一个DataTable
?
这很难解释,但是希望这是有道理的,但是如果没有的话,对不起!
编辑
用于计算总数的代码(freightTable是my DataTable
)
If freightTable.Rows.Count = 0 Then
txtTotal.Text = "0.00"
Else
Dim tot As Double = 0
Dim i As Integer = 0
For i = 0 To freightTable.Rows.Count - 1
tot = tot + Convert.ToDouble(ugFreight.Rows(i).Cells("Freight_Val").Value)
Next i
txtTotal.Text = tot
End If
记下您在列表中看到的运费值。
Dim freightDone As New List(Of Integer)
For i = 0 To freightTable.Rows.Count - 1
Dim currentFreigth as Integer = Convert.ToInteger( ugFreight.Rows(i).Cells("Freight_#").Value )
If Not freightDone.Contains(currentFreigth) Then
tot = tot + Convert.ToDouble(ugFreight.Rows(i).Cells("Freight_Val").Value)
freightDone.Add(currentFreigth)
End If
Next i
(您可能必须更改currentFreigth的定义以适合您的数据表列名称,或我的略微生锈的VB。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句