Yeah.. there's a few problems that center on the "admin = dr("isManager")".
A datareader is an array of information coming into the object from your select statement. As an array you should be interacting with it like dr(0)... dr(1).. etc.. In your case you only want the dr(0) because you only have one set of data coming back from the select statement. That's why you get the 'out of range' error - VB is not sure how to interpret 'isManager' as an index.
Now, what you should be doing is taking your data reader and converting it into a .NET dataset or table. In your case your table would have only one column - a string called userName.
Copying out of the MSDN 'populating datasets from a data adapter':
CODE
' Assumes that connection is a valid SqlConnection object.
Dim queryString As String = _
"SELECT CustomerID, CompanyName FROM dbo.Customers"
Dim adapter As SqlDataAdapter = New SqlDataAdapter( _
queryString, connection)
Dim customers As DataSet = New DataSet
adapter.Fill(customers, "Customers")
After you get your table populated then you can check to see if there are rows in the table and by the looks of it if there are rows then they are a manager.. capice?