Solved

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

Posted on 2010-11-13
4
1,027 Views
Last Modified: 2012-05-10
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...
0
Comment
Question by:alsam
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 17

Expert Comment

by:nepaluz
ID: 34128830
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
 
LVL 17

Expert Comment

by:nepaluz
ID: 34128837
Actually, you have to remove the 16 from the list that calls the function.
0
 
LVL 36

Expert Comment

by:Miguel Oz
ID: 34129183
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
 
LVL 83

Accepted Solution

by:
CodeCruiser earned 500 total points
ID: 34131209
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: jpaulino
XML Literals are a great way to handle XML files and the community doesn’t use it as much as it should.  An XML Literal is like a String (http://msdn.microsoft.com/en-us/library/system.string.aspx) Literal, only instead of starting and ending with w…
If you're writing a .NET application to connect to an Access .mdb database and use pre-existing queries that require parameters, you've come to the right place! Let's say the pre-existing query(qryCust) in Access takes a Date as a parameter and l…
There's a multitude of different network monitoring solutions out there, and you're probably wondering what makes NetCrunch so special. It's completely agentless, but does let you create an agent, if you desire. It offers powerful scalability …
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question