title: Why is my reader stuck in infinite loop
body: <p>Can anyone please explain why this is stuck in an infinite loop? I put this under a button and it worked fine. But when I put this in a class and instantiate the class, it gets stuck in an infinite loop. I assume it gets stuck in the loop because when I add breakpoints, it wont go further than inside the loop. It doesn't even get passed "End While", but if i put this code under a button click in ASP.NET it works just fine. What am I doing wrong? </p>
  
  <p>Please don't criticize about "SQL injection" with the way I'm passing values to my database, because this isn't going to be a public thing and I'm well aware of that.</p>
  
  <pre><code>Imports System.Data
  Imports System.Data.SqlClient
  
  
      'Step 1: Select the device ID
      Function SelectDevice(d As String, b As String, m As String, o As String) As String
  
          ' Try
  
          'Connect to database
          Dim xcitoDBConnection As SqlConnection
          xcitoDBConnection = New SqlConnection("Data Source=NOTDISPLAYED;" + "Initial Catalog=NOTDISPLAYED;" + "Integrated Security=True")
          Dim GetDeviceID As String = "SELECT DISTINCT(Identifier) FROM Support.Devices WHERE DeviceType='" &amp; d &amp; "' AND Brand = '" &amp; b &amp; "' AND Model = '" &amp; m &amp; "' AND OS = '" &amp; o &amp; "'"
          Dim command As SqlCommand = New SqlCommand(GetDeviceID, xcitoDBConnection)
  
          xcitoDBConnection.Open()
          'command.ExecuteScalar()
  
          Dim reader As SqlDataReader
          reader = command.ExecuteReader(CommandBehavior.CloseConnection)
          Dim GetID As String
  
          While reader.Read()
              GetID = reader("Identifier").ToString
              Return GetID
          End While
  
          xcitoDBConnection.Close()
  
          ' Catch ex As ApplicationException
          '  ex.Source = ("Selection Error")
          ' Throw ex
  
          ' Finally
  
          'End Try
      End Function
  End Class
  </code></pre>