Solved

Datagridview error

Posted on 2016-09-06
23
29 Views
Last Modified: 2016-09-13
Hello,
I get an error :
Row provided does not belong to this DataGridView control.
Parameter name: e.Row

Code:
 If con.State = ConnectionState.Closed Then
                    con.Open()
                End If
                com.Connection = con
                DataGridView1.VirtualMode = False
                'Commented out for messsage queue load on the server
                If DataGridView1.Rows.Count > 0 Then
                    'Commented out for messsage queue load on the server
                    For Each rw As DataGridViewRow In DataGridView1.Rows

                        com.CommandText = ("insert query" )


                        count = com.ExecuteNonQuery()
                        'Commented  for messsage queue load on the server
                        Application.DoEvents()
                        'Commented  for messsage queue load on the server

                        'Objwriter.WriteLine("Total Rows:" + count.ToString)
                        'Objwriter.Flush()

                        com.CommandTimeout = 725
                        com.ExecuteNonQuery()


                        Success = True
                    Next
                End If

Open in new window

0
Comment
Question by:RIAS
[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
  • 13
  • 10
23 Comments
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41786136
You might want to post the code where you get the error.  (you don't use e.row anywhere I see in your code snippet).
0
 

Author Comment

by:RIAS
ID: 41786143
I get error on     For Each rw As DataGridViewRow In DataGridView1.Rows

If con.State = ConnectionState.Closed Then
                    con.Open()
                End If
                com.Connection = con
                DataGridView1.VirtualMode = False
                'Commented out for messsage queue load on the server
                If DataGridView1.Rows.Count > 0 Then
                    'Commented out for messsage queue load on the server
                [b]    For Each rw As DataGridViewRow In DataGridView1.Rows[/b]

                        com.CommandText = ("insert query" )


                        count = com.ExecuteNonQuery()
                        'Commented  for messsage queue load on the server
                        Application.DoEvents()
                        'Commented  for messsage queue load on the server

                        'Objwriter.WriteLine("Total Rows:" + count.ToString)
                        'Objwriter.Flush()

                        com.CommandTimeout = 725
                        com.ExecuteNonQuery()


                        Success = True
                    Next
                End If

Open in new window

0
 

Author Comment

by:RIAS
ID: 41786183
error2 on the same line :

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
0
Is Your DevOps Pipeline Leaking?

Is your CI/CD pipeline a hodge-podge of randomly connected tools? You’ve likely got a tool to fix one problem & then a different tool to fix another, resulting in a cluster of tools with overlapping functionality. Learn how to optimize your pipeline with Gartner's recommendations

 

Author Comment

by:RIAS
ID: 41786184
Is there any check needed on the code?
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41786185
With the exact error message you show in the question body?
0
 

Author Comment

by:RIAS
ID: 41786188
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
 on this
For Each rw As DataGridViewRow In DataGridView1.Rows
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41786199
>>Index was out of range....

That message doesn't make sense with the line you say is generating the error.
0
 

Author Comment

by:RIAS
ID: 41786201
When i check for datagridview1.rows.count it shows zero
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41786206
>>When i check for datagridview1.rows.count it shows zero

How on earth is it actually reaching the line giving the error then?
   
            If DataGridView1.Rows.Count > 0 Then
                    'Commented out for messsage queue load on the server
                   For Each rw As DataGridViewRow In DataGridView1.Rows
0
 

Author Comment

by:RIAS
ID: 41786207
I have no clue Andy,it is what  it is
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41786217
Hmmmm.
Reboot your PC then check if it is still giving problems
0
 

Author Comment

by:RIAS
ID: 41786222
Andy,its a windows service.
The code is written on timer_click event.
When the timer _click is fired ..it leaves the loop and the cursor gets on Timer_Click ...
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41786240
Please try rebooting the PC.  It is surprising just how many strange errors get cured by such a simple measure.
0
 

Author Comment

by:RIAS
ID: 41786249
OK..its a server cant  restart it , will have to wait till weekend
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41786261
OK.


ps.  I know you have a good reason but why have you got a windows service interacting with a GUI ?
0
 

Author Comment

by:RIAS
ID: 41786276
I am debugging
0
 

Author Comment

by:RIAS
ID: 41786281
Also I need to know how I can make the timer_click wait till the looping of datagridview completes rather than just jumping on the timer_click event and leaving the loop
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41786292
I have a horrible feeling you are creating problems which won't exist in the real version.
0
 

Author Comment

by:RIAS
ID: 41787065
Why?
0
 
LVL 44

Accepted Solution

by:
AndyAinscow earned 500 total points
ID: 41787228
Because, if I understand you correctly, you have added code just for debugging and it is this code that is giving the error.
0
 

Author Comment

by:RIAS
ID: 41787356
I have not added code ,its already there I am debugging it
0
 

Author Comment

by:RIAS
ID: 41790880
I've requested that this question be deleted for the following reason:

Neglected question.Please delete it
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41790881
I haven't neglected this.  You said yourself it would have to wait for the weekend to enable you to try a reboot.
0

Featured Post

Space-Age Communications Transitions to DevOps

ViaSat, a global provider of satellite and wireless communications, securely connects businesses, governments, and organizations to the Internet. Learn how ViaSat’s Network Solutions Engineer, drove the transition from a traditional network support to a DevOps-centric model.

Question has a verified solution.

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

Welcome my friends to the second instalment and follow-up to our Minify and Concatenate Your Scripts and Stylesheets (http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/A_4334-Minify-and-Concatenate-Your-Scripts-and-Stylesheets.html)…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
Attackers love to prey on accounts that have privileges. Reducing privileged accounts and protecting privileged accounts therefore is paramount. Users, groups, and service accounts need to be protected to help protect the entire Active Directory …

710 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