algor 1-)SqlDataReader dr=new SqlDataReader(); 2-)dr=cmd.ExecuteReader(); Burada 1. şıktaki gibi olması gerekmiyor mu ? Sonuçta SqlDataReader bir sınıf ve nesne tanımlarken syntaxımız 1.şıktaki gibi.Ama buradaki örnekte dogru olan 2.deki gibi kullanılıyor. Bu linkte açıklaması var ama ingilizce oldugu için tam anlamayamadım : https://social.msdn.microsoft.com/Forums/en-US/f24ba5b7-0916-45d1-8e2d-252cd27821dc/why-sqldatareader-class-is-not-instantiated-by-new-operator?forum=aspdatasourcecontrols
GrizzlyBear cmd dediğin sqlcommand. Bu command nesnesinin ExecuteReader methodunu çağırdığında sana zaten bir SQLDataReader nesnesi dönecek. Microsoft Doc.