Bu makalede bir başlığından da anlaşılacağı üzere SqlDataReader ve SqlDataAdapter arasındaki farkı görebilmemiz için ufak bir test yaptım. Ve datareaderın daha hızlı olduğu açık bir şekilde belli oldu. Tavsiyem veritabanı işlemlerinizde SqlDataReader kullanmanızdan yanadır.
Aşağıda yaptığım test 46.350 satırlık bir tablo üzerinde gerçekleştirilmiştir. Test ettiğinizde farkın ne kadar büyük olduğunu siz de anlayacaksınız.

Kodlar:
void Test1()
{
DateTime baslangic = DateTime.Now;
SqlConnection con = new SqlConnection("Data Source=.; DataBase=Norm; user=sa; password=123456");
con.Open();
SqlCommand cmd = new SqlCommand("Select * From tblFaturalar", con);
SqlDataReader reader = cmd.ExecuteReader();
List<string> s = new List<string>();
while (reader.Read())
{
s.Add(reader.GetValue(0).ToString());
}
MessageBox.Show("Data Reader Hızı: "+(DateTime.Now - baslangic).ToString());
}
void Test2()
{
DateTime baslangic = DateTime.Now;
SqlConnection con = new SqlConnection("Data Source=.; DataBase=Norm; user=sa; password=123456");
con.Open();
SqlCommand cmd = new SqlCommand("Select * From tblFaturalar", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
List<string> s = new List<string>();
for (int i = 0; i < dt.Rows.Count; i++)
{
s.Add(dt.Rows[i][1].ToString());
}
MessageBox.Show("Data Adapter Hızı: "+(DateTime.Now - baslangic).ToString());
}
private void button1_Click_1(object sender, EventArgs e)
{
Test1();
}
private void button2_Click(object sender, EventArgs e)
{
Test2();
}