I have a couple of comments on code style.

Firstly, there's no need to nest Using blocks unless there's code in between them. In your case, the connection and the command can be created with a single Using statement, then you call Open on the connection, then you need a second Using statement to create the data reader.

Secondly, testing that a connection is open after calling Open is pointless. Whewn you call Open, either the connection will be opened or an exception will be thrown.

With these two things in mind:
vb.net Code:
  1. Using con As New SqlConnection(ConfigurationManager.ConnectionStrings("sqlConnectionString").ConnectionString),
  2.       command As New SqlCommand("GetUserLoginDetails", con)
  3.     '...
  4.  
  5.     con.Open()
  6.  
  7.     Using reader As SqlDataReader = command.ExecuteReader()
  8.         '...
  9.     End Using
  10. End Using