As I'm seeing it, it will add each entry from 1 to n if you use the block of code below and only that code after you have set the ResultSet.
Do While CursorVenueDescription.NextRow
lstVenues.AddSingleLine(CursorVenueDescription.GetString("Description")) 'This will add records 2 to end to the list
Loop
If however you use the code below after setting the ResultSet to check if records exist, it moves to the first record of the ResultSet when you perform any code in the 'If' statement.
If CursorVenueDescription.NextRow = True Then
After that when you use 'DoWhile CursorVenueDescription.NextRow' in the 'If' statement, it will start with the next record which is the 2nd record in the ResultSet.
I'm just not sure which is the most elegant way to traverse through a ResultSet where you actually want to perform tasks while doing that?