>>40
まず、DataReader使うのなら、読み込み終わったら、すぐにCloseメソッドを実行する必要あり。
DataReaderに関連付けされているコネクションは、Closeメソッドが実行されるまで
ビジー状態になってて、閉じる以外の操作ができない。

あと、SqlConnectionを使っているので、接続プーリングが働いている。
Closeメソッド(またはDisposeメソッド)で接続を開放しないと、接続プールに
戻らない。ADO.NETのデータプロバイダでは、閉じない接続はデフォルトで
60秒間は再利用されない。