Solved

Datagridview error

Posted on 2016-09-06
23
26 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
Independent Software Vendors: 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!

 

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

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

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.

Question has a verified solution.

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

It’s quite interesting for me as I worked with Excel using vb.net for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
Parsing a CSV file is a task that we are confronted with regularly, and although there are a vast number of means to do this, as a newbie, the field can be confusing and the tools can seem complex. A simple solution to parsing a customized CSV fi…
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

756 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