First Record Skipped by ASP.NET


When I was using DataReader in ASP.NET(VB), I came across a problem : The very first record was not displayed in a while loop.
I have given the code with error as well as the corrected code

THE FOLLOWIING CODE WILL SKIP THE FIRST RECORD BY DR1
         <%
        While dr.Read
                 strSelect = "select * from staff where staff_id=" & dr.Item("staff_id")
                 cmdSelect1 = New System.Data.OleDb.OleDbCommand(strSelect, dbconn)
            dr1 = cmdSelect1.ExecuteReader()
            j = 1
                 If Not dr1.Read() Then
                     'NOTE: BECAUSE OF DR1.READ(), THE FIRST RECORD IS SKIPPED BY THE WHILE LOOP
                     Response.Write("Any Date")
                 End If
                 Do While dr1.Read()
                   
                     Response.Write(dr1.Item("start_date") & "
")
                 Loop 'for dr1
               
                 dr1.Close()
             
       
             End While
        %>

    SOLUTION: MODIFY THE CODE AS SHOWN BELOW, TO AVOID SKIPPING OF THE FIRST RECORD
    <%
        While dr.Read
   
            strSelect = "select * from staff where staff_id=" & dr.Item("staff_id")
            'Response.Write(strSelect)
            cmdSelect1 = New System.Data.OleDb.OleDbCommand(strSelect, dbconn)
            dr1 = cmdSelect1.ExecuteReader()
            j = 1
            'If Not dr1.Read() Then
            'Response.Write("Any")

            'End If
            If dr1.HasRows Then
                'NOTE: INSTEAD OF NOT DR1.READ, USE  DR1.HASROWS
                Do While dr1.Read()
                    Response.Write(dr1.Item("start_date") & "
")
                Loop 'for dr1
            Else
                Response.Write("Any date")
            End If
            dr1.Close()
             
       
        End While
        %>