資料存取一直是商業應用程式最重要的技術環節,相關技術於.NET平台已經相當成熟,而其中的關鍵莫過於 LINQ 這項簡單卻威力強大的資料搜尋技巧,而這一系列文章,快速的從最基本的ADO.NET開始,逐步探討LINQ導入之後,相關技術的應用,包含實體類別設計、Entity Framework等等,最後以 ASP.NET MVC 環境下的操作結束,而為了完整性,開始的第一篇複習一下最簡單的 DataSet ,並檢視相關的資料表。
DataSet 是 ADO.NET 最重要的物件之一,負責封裝資料內容,避免應用程式與底層資料庫的直接連線,提供資料操作的最佳彈性。DataSet 被大量運用在 .NET 平台的資料庫應用程式開發,它幾乎是ADO.NET 客戶端資料處理功能的核心,當資料被快取至DataSet物件,剩下的工作則交由 DataSet 物件來執行,應用程式能夠直接在記憶體處理資料內容,而不需要與後端資料庫進行連接,進一步降低網路交通流量。
假設有一個 SQL Server 資料庫 KTMS ,其中的資料表儲存管理一般的商品交易處理資料,先以簡單的分類資料表 Categories 為例,內容如下:
DataSet 是 ADO.NET 最重要的物件之一,負責封裝資料內容,避免應用程式與底層資料庫的直接連線,提供資料操作的最佳彈性。DataSet 被大量運用在 .NET 平台的資料庫應用程式開發,它幾乎是ADO.NET 客戶端資料處理功能的核心,當資料被快取至DataSet物件,剩下的工作則交由 DataSet 物件來執行,應用程式能夠直接在記憶體處理資料內容,而不需要與後端資料庫進行連接,進一步降低網路交通流量。
假設有一個 SQL Server 資料庫 KTMS ,其中的資料表儲存管理一般的商品交易處理資料,先以簡單的分類資料表 Categories 為例,內容如下:

以下是一個簡單的主控台範例,透過DataSet取得 KTMS 資料庫中的 Categories 資料表內容。
首先是一段典型的 ADO.NET 程式,從連線的建立, SQL 語法到建立 DataSet 封裝回傳的資料內容等等,最後逐一取出第一個以及第二個欄位的內容顯示在畫面上。以下為執行結果:
相較於傳統的資料存取技術, DataSet在資料庫的存取操作上提供了更具彈性、更有效率的作法,不過 DataSet 就如同一般的集合物件,想要進一步針對 DataSet 資料執行搜尋運算並不容易,而現在結合 LINQ 技術,開發人員能夠以比較優雅的方式處理相關的問題。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
namespace LINQ_DATA_Day1
{
class Program
{
static void Main(string[] args)
{
SqlConnection conn = new SqlConnection(
@"Server=Tim-PC;
DataBase = KTMS ;
Trusted_Connection=True ; ");
string sql = "SELECT * FROM Categories";
DataSet ds = new DataSet();
using (conn)
{
SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
adapter.Fill(ds, "Categories");
}
foreach (DataRow row in ds.Tables[0].Rows)
{
Console.WriteLine(row[0].ToString() + ":" + row[1]);
}
Console.ReadKey();
}
}
}
首先是一段典型的 ADO.NET 程式,從連線的建立, SQL 語法到建立 DataSet 封裝回傳的資料內容等等,最後逐一取出第一個以及第二個欄位的內容顯示在畫面上。以下為執行結果:
101001:PC 組裝元件大類(A)
101002:PC 週邊設備(B)
101003:PC 延伸裝置(C)
…
相較於傳統的資料存取技術, DataSet在資料庫的存取操作上提供了更具彈性、更有效率的作法,不過 DataSet 就如同一般的集合物件,想要進一步針對 DataSet 資料執行搜尋運算並不容易,而現在結合 LINQ 技術,開發人員能夠以比較優雅的方式處理相關的問題。
- LINQ 與資料存取 (1) -從 ADO.NET 開始
- LINQ 與資料存取 (2) - 透過 LINQ 讀取 DataSet 資料
- LINQ 與資料存取 (3) - 透過 LINQ 轉換 DataSet 形成可序列化資料
- LINQ 與資料存取 (4) - 透過 LINQ to SQL 進行資料表查詢
- LINQ 與資料存取 (5) - 強型別模式的 LINQ to SQL 查詢
- LINQ 與資料存取 (6) - 初探 Entity Framework
沒有留言:
張貼留言