While it does work in this case you probably shouldn't dispose of it until you are done with the reader that you requested from it.
While in this case you know that the implementation of SqlReader does not make use of the SqlCommand object that created it, this does not hold true for all cases. It is much better not to make assumptions about the implementation of a class.
In this case I would also suggest that you use using or try/finally statements because if an exception is thrown anywhere in your code as it is currently written you will not dispose of the sql objects.