I've got a code using SQLClient that loops though all users in a Users table inside each loop i want to preform another search in the UserOrders table, thus doing a count of all orders.

I get this error

HTML Code:
There is already an open DataReader associated with this Command which must be closed first.
Here is my code

vb.net Code:
  1. UserLists.Items.Clear()
  2.             Dim connection As New SqlClient.SqlConnection(My.Settings.ConnectString)
  3.                 Dim command As New SqlClient.SqlCommand("SELECT * FROM Users ORDER BY PersonName", connection)
  4.             connection.Open()
  5.  
  6.             Dim reader As SqlClient.SqlDataReader = command.ExecuteReader
  7.             Dim Ops As String = ""
  8.             While reader.Read
  9.  
  10.                 Dim ID As Integer = reader("ID")
  11.                 Dim command2 As New SqlClient.SqlCommand("SELECT Count(ID) FROM UserOrders WHERE UserID = @ID", connection)
  12.                 command2.Parameters.AddWithValue("@ID", ID)
  13.                 Dim count = command2.ExecuteScalar
  14.  
  15.  
  16.                 Dim listitem As New ListViewItem
  17.                 listitem.Text = reader("Username")
  18.                 listitem.SubItems.Add(reader("PersonName"))
  19.                 listitem.SubItems.Add(count)
  20.                 listitem.Tag = reader("ID")
  21.                 UserLists.Items.Add(listitem)
  22.  
  23.             End While
  24.             connection.Close()