I need to nestle two SqlCommand calls but I get the exception 'System.InvalidOperationException' and it says that "There is already an open DataReader associated with this Command which must be closed first."

How should I code this one? Here follows what I´ve been trying so far:

SqlConnection ^conn = gcnew SqlConnection;
conn->ConnectionString = "Data Source=localhost\\SQLEXPRESS;"
"Initial Catalog=Test;Integrated Security=SSPI;";
try
{
conn->Open();
SqlCommand ^cmdA = gcnew SqlCommand();
cmdA->Connection = conn;
cmdA->CommandType = CommandType::Text;
cmdA->CommandText = (String^)"SELECT * FROM mytable1";
SqlDataReader ^readerA = cmdA->ExecuteReader();

while(readerA->Read())
{
SqlCommand ^cmdB = gcnew SqlCommand();
cmdB->Connection = conn;
cmdB->CommandType = CommandType::Text;
cmdB->CommandText = String::Format("SELECT * FROM mytable2 "
"WHERE mytable2.id= '{0}'",(int)readerA["id"]);
SqlDataReader ^readerB = cmdB->ExecuteReader(); // HERE COMES THE EXCEPTION!
if(readerB->Read())
{
...
}
}
}
catch(...)
...