erro 'já existe um datareader aberto associado a este comando que deve ser fechado primeiro'

erro de tempo de execução 'já existe um datareader aberto associado a este comando que deve ser fechado primeiro'

objCommand = new SqlCommand("SELECT field1, field2 FROM sourcetable", objConn);

objDataReader = objCommand.ExecuteReader();

while (objDataReader.Read())
{
objInsertCommand = new SqlCommand("INSERT INTO tablename (field1, field2) VALUES (3, '" + objDataReader[0] + "')", objConn);
objInsertCommand.ExecuteNonQuery();//Here is the error
}
objDataReader.Close();

Não consigo definir nenhum procedimento armazenado aqui. Qualquer ajuda seria apreciada.

questionAnswers(12)

yourAnswerToTheQuestion