获取datagridview中的列总数

时间:2018-07-23 07:50:28

标签: string vb.net types datagridview double

我已经将数据输入到数据网格视图列

dgvAccDetail.Rows(i).Cells(3).Value = dtVD.Rows(i).Item(“ DEBIT”)。ToString.Trim

现在,我需要为此获取“ DEBIT”列的总和...

        Dim tot As Integer = 0

             For i As Integer = 0 To dgvAccDetail.RowCount - 1
            tot += dgvAccDetail.Rows(i).Cells(4).Value

        Next
        If tot = 0 Then
            MessageBox.Show("No Records Found")
        End If

        TXTVoucherDTotal.Text = tot.ToString()

但是我收到了味精

“从字符串转换为double类型无效”

plz告诉我这段代码有什么问题

4 个答案:

答案 0 :(得分:0)

您正在尝试将字符串值添加到整数值。 dgvAccDetail.Rows(i).Cells(4).Value返回一个字符串。 您可以将其解析为整数:

tot += Integer.Parse(dgvAccDetail.Rows(i).Cells(4).Value)

答案 1 :(得分:0)

尝试一下:

 For i = 0 To dgvAccDetail.RowCount - 1
        tot += Cint(dgvAccDetail(4, i).Value)
 Next

答案 2 :(得分:0)

首先,将Option设置为严格,它将帮助您避免以后出现许多错误。严格禁用该选项后,编译器必须推断数据类型,这就是为什么您的计算无法正常工作的原因。

第二,更改此行:

IF...THEN

收件人

Object Variable or With block variable not set

最后,您尝试对文本进行数学运算,需要首先将单元格值转换为正确的格式。

dgvAccDetail.Rows(i).Cells(3).Value = dtVD.Rows(i).Item("DEBIT").ToString.Trim 
'This line doesn't compile with option strict on

答案 3 :(得分:0)

DataTable的计算方法需要2个字符串;表达式和过滤器。使用数据表中的相应列。

 Dim columnSum As Integer = CInt(dtVD.Compute("Sum(DEBIT)", Nothing))