2012-09-27 71 views
2

下面的简单代码SqlDataReader的检索数据:SqlDataReader如何接收数据?

SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=myDB;Integrated Security=True"); 
    conn.Open(); 
    SqlCommand cmd = conn.CreateCommand(); 
    cmd.CommandText = "SELECT [t0].[ID], [t0].[Name] FROM [Persons] AS [t0]"; 
    SqlDataReader rdr = cmd.ExecuteReader(); 
    while (rdr.Read()) 
    { 
     Console.WriteLine(rdr["id"] + " " + rdr["name"]); 
    } 

当代码运行,我使用SQL事件探查监测数据库。我只看到一个选择命令。

SELECT [t0].[ID], [t0].[Name] FROM [Persons] AS [t0] 

如此看来SqlDataReader对象将首先检索ALL从服务器的数据,然后再一一列举。

这是真的吗?如果数据太多会怎么样?

+1

我测试了那里,我开始阅读器,并改变了下一行,但读者并没有得到修正值。所以它似乎提前阅读。 – Paparazzi

回答