
「LINQ to DataSet」針對 DataSet 作了進一步的擴充,「LINQ 實務精要」圖書中這一章的文章針對此部份進行討論,將在此逐篇釋出。
DataSet幾乎是整個ADO.NET客戶端資料處理功能的核心,當資料被快取至DataSet物件,剩下的工作則交由DataSet物件來執行,應用程式能夠直接在記憶體處理資料內容,而不需要與後端資料庫進行連接。
現在,我們可以透過 LINQ 的支援,針對 DataSet 物件資料執行進一步的查詢運算。
考慮以下的程式碼:
SqlConnection conn =new SqlConnection(connstring);
string sql = "SELECT * FROM Book";
DataSet ds = new DataSet();
using (conn)
{
SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
adapter.Fill(ds, "Book");
}
DataTable dt = ds.Tables["Book"];
IEnumerable<DataRow> rows =
from row in dt.AsEnumerable()
select row ;
foreach (DataRow row in rows)
{
// row[0]
// row[1]
}
其中灰階標示的部份,透過 AsEnumerable 將 DataTable 轉換成支援 LINQ 查詢的集合物件,然後執行 LINQ 敘述,最後的迴圈將其中的欄位資料逐一取出。
沒有留言:
張貼留言