• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 860
  • Last Modified:

Append data to DataGridView instead of overwriting it in Vb.net

Hi Experts,
 
I have two datagridviews. I select multiple rows from one datagridview and move it to another Datagridview. And I have to do it multiple times. First time it works fine. But when I do it next time the previous data is overwritten. I want the Previous rows as well as the new rows in the second datagridview.
I am using the code below to bind the datagridview.

            connection.Open()
            cmd = New SqlCommand(finalSql, connection)
            da.SelectCommand = cmd
            da.Fill(dt)
            bsource.DataSource = dt
            dgvRegister.DataSource = bsource

Thank you in advance.
0
RadhaKrishnaKiJaya
Asked:
RadhaKrishnaKiJaya
  • 5
  • 3
1 Solution
 
ReneD100Commented:
How do you add them to the 2nd dgv? To the bound datatable?
0
 
RadhaKrishnaKiJayaAuthor Commented:
yes. I am using the following code.

For Each dr As DataGridViewRow In Me.dgvAdd.SelectedRows
                If Me.dgvAdd.SelectedRows.Count = 1 Then
                    '*** When only one row is selected in the first datagrid
                    Dim StockPaletNo As String = dgvAdd.Rows(dr.Index).Cells(4).Value
                    finalSql = finalSql + " " + sqlPaletNo + " '" + StockPaletNo + "'"

                Else
                    Dim StockPaletNo As String = dgvAdd.Rows(dr.Index).Cells(4).Value

                    If finalSql <> "" Then
                        finalSql = finalSql + " or STK_PLT_NO =" + " '" + StockPaletNo + "'"
                    Else
                        finalSql = finalSql + " " + sqlPaletNo + " '" + StockPaletNo + "'"
                    End If
                End If

            Next

            finalSql = SQL + finalSql + sqlOrderBy
            connection.Open()
            cmd = New SqlCommand(finalSql, connection)
            da.SelectCommand = cmd
            da.Fill(dt)
            bsource.DataSource = dt
            dgvRegister.DataSource = bsource
0
 
ReneD100Commented:
Took me a second to read the code, but I think I get what you're trying to do. SQL is the 'base' query that retrieves data, then you include more rows by adding finalsql (which has a series of ORs). Then you retrieve that and bind that to the datagrid.
finalsql is defined outside this function.
Not the easiest way I think, but that is also not really your question. Assuming I understood your code correctly, are you able to store any data in the dgv the second time? Because the second time I don't think this going to run correctly:
finalSql = SQL + finalSql + sqlOrderBy

Open in new window

put a messagebox or debug.print to show the finalsql and look at the contents.
0
Nothing ever in the clear!

This technical paper will help you implement VMware’s VM encryption as well as implement Veeam encryption which together will achieve the nothing ever in the clear goal. If a bad guy steals VMs, backups or traffic they get nothing.

 
RadhaKrishnaKiJayaAuthor Commented:
Thank you  for ur reply. This is the final query.

"SELECT * FROM PNLSTKMST WHERE STK_PART_NO = '663113S000         ' AND CONVERT(INT,STK_QTY) != 0 AND STK_PRO_STS = '0' AND STK_BAD_CLS = '00' AND   STK_PLT_NO =  '1014' or STK_PLT_NO = '1030' ORDER BY STK_DATE,STK_TIME,STK_ROW,STK_BAY,STK_LEV"

Actually there is no problem with the query. I am getting all the records I need to. But how can I bind the DGV so that it should not overwrite the previous data.

Thanks.
0
 
ReneD100Commented:
If you don't want to store the data in a database table you could use a datatable for the intermediate results. You use a second datatable for the second dgv (if the structure is the same you can use the datatable.clone method-  this copies the structure but not the data). Then you can import the datarows from the datatable bound to the first dgv to the second datatable: datatable2.import(row) - you need to look at the exact syntax. That way you can keep on adding to datatable2.
0
 
RadhaKrishnaKiJayaAuthor Commented:
Thank you for your reply. Can you give some code please?
0
 
RadhaKrishnaKiJayaAuthor Commented:
Thank you for your time to help me. But I found the solution. Instead of binding the second datagrid I am moving the selected row from one DGV to another.

For i = 0 To dgvAdd.SelectedRows.Count - 1
                Dim index As Integer = dgvRegister.Rows.Add
                dgvRegister.Rows(index).Cells(0).Value = dgvAdd.SelectedRows(i).Cells(0).Value.ToString
next i
0
 
RadhaKrishnaKiJayaAuthor Commented:
Because I found the answer by myself.

Thank you.
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 5
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now