Assuming your 'for loop is not running in a separate thread:
1. as Maciej recommended, you need to handle opening the connection outside the loop
Consider:
lblProgress.Text = "Connected. Completing: ";
lblProgress.Text += i.ToString() + ", ";
lblProgress.Text = lblProgress.Text.Trim().TrimEnd(',');
This way there's no need to slow your processing down with using 'Sleep.
However, why not consider using the MS ProgressBar Control ?