In teoria se togli questa riga
Dim wholeFile As String = sr.ReadToEnd()
dovrebbe funzionare...
infatti se non erro questa istruzione ti porta alla EOF e quindi giustamente non loopa...
poi ho qualche dubbio sulla riga del while; personalmente avrei usato qualcosa del tipo

codice:
Loop While Not sr.EndOfStream
dovresti chiudere anche l'oggetto streamReader oltre che il db... (?)

un ultima considerazione... a che ti serve la variabile i ???
(a meno che non ti serva più avanti nel codice...)

P.S. attento che se il file è vuoto mi sa che cmq genera errore... al limite sposta il while sulla riga del do.
E sempre per evitare errori farei anche un controllo sull'esistenza del file