Solved

Combine rows in a DataGrid

Posted on 2009-05-08
2
214 Views
Last Modified: 2013-11-27
Hi Experts

I have a datagrid on my form that I populate from a Access database and I recently got some code from EE to combine rows with each other and also combine the text of that rows with each other. But this only works for the first column, and only if it is a text value. What I actually want to do is plus the other rows as well, witch are integers, and when I combine 2 rows it must delete one of the rows. Can any one please help me out here or give me some sample code or refer me to a useful website. Any help would be greatly appreciated

Thanx in advance
Dim result As String = String.Empty
 
        If (DataGridView1.SelectedCells.Count > 1) Then
 
 
            For Each cell As DataGridViewCell In Me.DataGridView1.SelectedCells
 
                result &= cell.Value.ToString & " & "
 
 
            Next
            result = result.Remove(result.Length - 2)
 
            Me.DataGridView1.SelectedCells(0).Value = result.ToString()
        End If

Open in new window

Before.JPG
After.JPG
0
Comment
Question by:Benvor
2 Comments
 
LVL 12

Accepted Solution

by:
GuitarRich earned 500 total points
ID: 24334173
It looks to me like your only doing cells - you need to use the SelectedRows property so that you can do the whole row.
This should get you close:

        If (DataGridView1.SelectedRows.Count > 1) Then
 
            For i As Integer = 0 To Me.DataGridView1.SelectedRows(0).Cells.Count - 1
                Me.DataGridView1.SelectedRows(0).Cells(i).Value += " & " + Me.DataGridView1.SelectedRows(1).Cells(i).Value
            Next
 
            DataGridView1.Rows.Remove(Me.DataGridView1.SelectedRows(1))
        End If

Open in new window

0
 

Author Comment

by:Benvor
ID: 24334276
Thanx allot GuitarRich. I just had to put this IF in to combine the cells that are Integer. Here is the final code to combine rows in a datagrid.
        If (DataGridView1.SelectedRows.Count > 1) Then
 
            For i As Integer = 0 To Me.DataGridView1.SelectedRows(0).Cells.Count - 1
                If IsNumeric(Me.DataGridView1.SelectedRows(0).Cells(i).Value) Then
                    Me.DataGridView1.SelectedRows(0).Cells(i).Value += Me.DataGridView1.SelectedRows(1).Cells(i).Value
                Else
                    Me.DataGridView1.SelectedRows(0).Cells(i).Value += " & " + Me.DataGridView1.SelectedRows(1).Cells(i).Value
                End If
                'Me.DataGridView1.SelectedRows(0).Cells(i).Value += " & " + Me.DataGridView1.SelectedRows(1).Cells(i).Value
            Next
 
            DataGridView1.Rows.Remove(Me.DataGridView1.SelectedRows(1))
        End If

Open in new window

0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

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

Suggested Solutions

Entering time in Microsoft Access can be difficult. An input mask often bothers users more than helping them and won't catch all typing errors. This article shows how to create a textbox for 24-hour time input with full validation politely catching …
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

828 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