SQLを発行してテーブルのデータを読み込む場合、
結果をDataTableに一気に読み込むのと、
SqlDataReaderを使って 
while (dr.Read()){
 ... 
}
のようにループで一個ずつ取り出すのとで、どっちが良いとかありますか?