Solved

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

Posted on 2014-10-30
8
668 Views
Last Modified: 2014-11-05
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
Comment
Question by:RadhaKrishnaKiJaya
  • 5
  • 3
8 Comments
 
LVL 5

Expert Comment

by:ReneD100
Comment Utility
How do you add them to the 2nd dgv? To the bound datatable?
0
 

Author Comment

by:RadhaKrishnaKiJaya
Comment Utility
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
 
LVL 5

Expert Comment

by:ReneD100
Comment Utility
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
 

Author Comment

by:RadhaKrishnaKiJaya
Comment Utility
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
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 
LVL 5

Expert Comment

by:ReneD100
Comment Utility
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
 

Author Comment

by:RadhaKrishnaKiJaya
Comment Utility
Thank you for your reply. Can you give some code please?
0
 

Accepted Solution

by:
RadhaKrishnaKiJaya earned 0 total points
Comment Utility
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
 

Author Closing Comment

by:RadhaKrishnaKiJaya
Comment Utility
Because I found the answer by myself.

Thank you.
0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

As more and more people are shifting to the latest .Net frameworks, the windows presentation framework is gaining importance by the day. Many people are now turning to WPF controls to provide a rich user experience. I have been using WPF controls fo…
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 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…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

771 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

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now