2012-05-10 31 views
0

使用Linq有沒有更有效的方法來做到這一點?Idatareader到列表

IDataReader reader = qSeats.ExecuteReader(); 
      var seats = new List<int>(); 
      using (IDataReader reader = qSeats.ExecuteReader()) 
      { 
       while (reader.Read()) 
       { 
        seats.Add(Convert.ToInt32(reader.GetInt32(0))); 
       } 
      } 

我看到:How do I load data to a list from a dataReader? 然而,這是相同的代碼我上面,而且好像有可能會更快的方式。 像使用Linq或seats.AddRange()或某種ToList()

回答

1

DataReader是隻讀的,是來自數據庫的只向前數據流。你這樣做的方式可能是最快的。

使用DataReader可以通過 檢索數據,儘快提高應用性能既因爲它是可用的,而不是等待 要返回的查詢的全部結果,並(默認) 存儲只有一行一次在內存中,減少系統開銷。 Retrieving Data Using the DataReader

+0

除了它似乎執行兩次 – CRice