Try wrapping your connection and command objects in Using blocks, see:
http://msdn.microsoft.com/en-us/library/ms254507(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1[
^]
Also, you should probably use ExecuteScalar instead of ExecuteReader, that way you don't have to use a DataReader object. If the ExecuteScalar returns null, then the user is not found, if it doesn't return null, just cast it to your type object.
When using the Using blocks, you don't have to worry about cleaning up the resources, the framework does it for you. I'm not sure why you are getting the issue, but taking out the Reader and using Using blocks will clean up your code.
Also, since I can preach in this box, do not use string concatenation with your queries. If I were to type "a'; DROP TABLE [Login]; --" in your user name box, I would delete your login table. Learn how to use parameters with your queries to make your site safe from SQL Injection attacks.