VB.NET实现DataGridView仅计算AMOUNT列的行总计
计算DataGridView中指定列(AMOUNT)的总计
你的问题出在代码遍历了当前行的所有单元格,所以会累加整行的值。要只计算“AMOUNT”列的总计,只需定位到该列,遍历每行的对应单元格即可,同时要处理空值和非数值的情况,避免报错。
修改后的代码示例:
' 先获取AMOUNT列的索引,避免硬编码列索引 Dim amountColumnIndex As Integer = ReviewGrid.Columns("AMOUNT").Index Dim totalAmount As Decimal = 0 ' 遍历每一行,跳过新行(DataGridView默认的空行) For Each row As DataGridViewRow In ReviewGrid.Rows If Not row.IsNewRow Then ' 检查单元格值是否有效,避免空值或非数值导致异常 Dim cellValue As Object = row.Cells(amountColumnIndex).Value If cellValue IsNot DBNull.Value AndAlso cellValue IsNot Nothing Then Dim amount As Decimal If Decimal.TryParse(cellValue.ToString(), amount) Then totalAmount += amount End If End If End If Next ' 输出或使用总计值 Console.WriteLine($"AMOUNT列总计:{totalAmount}")
关键说明:
- 用
ReviewGrid.Columns("AMOUNT").Index获取目标列的索引,比硬编码数字更灵活,列顺序改变也不影响 - 加入
Not row.IsNewRow判断,跳过DataGridView自动生成的空行,避免计算无效数据 - 用
Decimal.TryParse验证单元格值是否为有效Decimal,防止空值或非数值输入引发错误
内容的提问来源于stack exchange,提问作者Arrow
相关产品推荐
相关产品推荐

