How to add a new row in datagridview in vb.net that calculates totals for columns

Hi,
I have populated datagridview from sql server database...
Datagridview has 5 colums...
First column is varchar column type and the rest are float....
The datagridview counts 15 rows....
I would like to add 16 th row to show sum of each respective column...It should look like

TOTAL    Sum(column1)    Sum(Column2)  Sum (Column3)     Sum(Column4)

Can someone help me to make this working....
Thanks...
LVL 1
alsamAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
nepaluzCommented:
try this

'insert your column
Dim NewColumn As New DataGridViewColumn
Form1.DataGridView1.Columns.Insert(16, NewColumn)
Dim ColumnsToAdd As New List(Of Integer) From {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}
For x = 0 To Form1.DataGridView1.RowCount - 1
    Form1.DataGridView1.Item(16, x).Value = SumColumns(ColumnsToAdd, x)
Next

'and alsoadd this function
Function SumColumns(ByVal columns As List(Of Integer), ByVal row As Integer) As Double

Dim q As Double = 0.0
For Each y As Integer In columns
    Try
        q = Form1.DataGridView1.Item(y, row).Value + q
    Catch ex As Exception
    End Try
Next
Return q

End Function

Open in new window

0
 
nepaluzCommented:
Actually, you have to remove the 16 from the list that calls the function.
0
 
Miguel OzSoftware EngineerCommented:
See code below:

For more datagridview usage check:
http://dotnetperls.com/datagridview-vbnet
'insert total row
Dim totalIndex As Integer = DataGridView1.Rows.Add()
'calculate totals
For x = 1 To Form1.DataGridView1.ColCount - 1
    Form1.DataGridView1.Rows.Item(totalIndex).Cells(x).Value = SumColumns(x)
Next

Function SumColumns(ByVal col As Integer) As Double

Dim q As Double = 0.0
For x = 0 To Form1.DataGridView1.RowCount - 2
    q = Form1.DataGridView1.Item(x).Cells(col).Value + q
Next
Return q

End Function

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.