Ciao a tutti,

sto diventando matto in questo ambiente. E parlo del Visual Studio 2010. Ho lasciato da parte il buon vecchio VB6 e mi sono gettato a capofitto in questo nuovo ambiente che , pero' , non riesco a domare.
Vi faccio un esempio. Sto cercando di elaborare un comparatore di quote. Leggo 2 file da web e trasferisco le informazioni in 2 differenti datagridview. E gia' qui problemi a non finire. Non riesco a capire per esempio per quale motivo se provo a leggere in una riga (esistente perche' creata) vuota mi da' un errore e mi chiede di fare una verifica per controllare prima che non sia vuota. Faccio questa verifica e mi da' lo stesso errore ripetendomi la stessa cosa. Ho , come penso in tanti, l'abitudine di mettere dei berakpoint in modo da poter leggere i valori di alcune variabili. Bene, di punto in bianco questo non è piu' possibile perche' , secondo lui , il programma è diverso da quello originale e , quindi, per forzare la cosa devo dire al sistema di farmi un piacere a fare quella cosa.
Adesso anceh in un semplice ciclo for next o While mi dice delle cose che non stanno ne' in cielo ne' in terra.
Posto il codice:

codice:
 Private Sub cercasurecash()         
Dim sq_bf1 As String, sq_bf2 As String, totrec As Integer, my_mark As String = ""         
Call leggi_fileconf()         
totrec = CInt(jj_num.Text)         
BP_count.Text = "0" : SC_Trov.Text = "0" : tot_gare.Text = "0"         
numriga_odd = 1          
DataGridView1.Rows.Clear()         
DataGridView2.Rows.Clear()         
DataGridView3.Rows.Clear()         
Call Cerca_GareBp()         
Call scarica_sitoBF()         
While ok_scar <> True         
'
End While         
ok_scar = False         
Call CercaDatiBF()         
Dim colonna As Integer = 5         
Dim riga As Integer = 0               
While riga < DataGridView1.Rows.Count() - 1             
        Application.DoEvents()             
        BP_count.Text += 1             
        Dim gara As String = DataGridView1.Rows(riga).Cells(colonna).Value.ToString() 
        Dim sq_BP As String() = gara.Split("-")              ' splitto le squadre             
        sq_BP(0) = Trim(sq_BP(0)) : sq_BP(0) = UCase(sq_BP(0))             
        sq_BP(1) = Trim(sq_BP(1)) : sq_BP(1) = UCase(sq_BP(1))             
        For Num_rec As Integer = 1 To totrec                 
             If sq_BP(0) = Confronto(Num_rec, 2) Then                     
                 sq_bf1 = Confronto(Num_rec, 1)                     
                 Exit For                 
             End If            
         Next Num_rec            
 For Num_rec As Integer = 1 To totrec                 
If sq_BP(1) = Confronto(Num_rec, 2) Then                     

sq_bf2 = Confronto(Num_rec, 1)                     
Exit For                 End If             
Next Num_rec             
If (Trova_squadrainBF(sq_BP(0), sq_BP(1), sq_bf1, sq_bf2) = True)
Then 
If chk_match.Checked = True Then                     
Call match_odds(riga, gara)                 
End If                 
If chk_15.Checked = True Then                     
Call uo15(riga, gara)                 
End If                 
If chk_25.Checked = True Then                     
Call uo25(riga, gara)                 
End If                 
If chk_35.Checked = True Then                     
Call uo35(riga, gara)                 
End If                 
If chk_Mht.Checked = True Then                     
Call MatchHT(riga, gara)                 
End If             
End If             
riga = riga + 1         
End While     
End Sub
Quando il valore di riga arriva a 2 mi viene notificato l'errore
NullReferenceException was unhandled
Object reference not set to an instance of an object
L'mmagine che appare punta al carattere 1 di riga = riga + 1
Non ci sto capendo piu' niente e questa cosa mi manda fuori dai gangheri. Potete aiutarmi?

Grazie