第20章 LINQ 資料查詢技術 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或拷貝.

Slides:



Advertisements
Similar presentations
办公室保健指南. 减少辐射篇 ❤显示器散发出的辐射多数不是来自它的正面,而是侧面和后面。因此,不要 把自己显示器的后面对着同事的后脑或者身体的侧面。 ❤常喝绿茶。茶叶中含有的茶多酚等活性物质,有助吸收放射性物质。 ❤尽量使用液晶显示器。
Advertisements

第2章第2章 第 1 节 生物与非生物. [ 猜谜语 ] 名字叫做牛, 不会拉犁头; 说我力气小, 背着房子走。 ( 打一动 物)
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
魏 饴. 处级干部培训班讲座 一、卓越干部的德行素质  常修为政之德、常思贪欲之害、常怀律己之心!  孔老夫子有个观点 “ 为政以德,譬如北辰居其所而众星拱之。 ”  司马光《资治通鉴》 “ 才者,德之资也;德者,才之帅也。 ” “ 德 ” 胜 “ 才 ” 谓之 “ 君子 ” , “ 才 ”
大地遊戲王 課程實錄.
教育技术装备统计系统 使用培训 教育部基础教育司 教育部教育管理信息中心.
武汉库得克 软件有限公司 公司简介 发展机遇 特点 一家专注于质量管理平台和整体 解决方案的提供商
Database Management System 資料庫管理系統
第6章 数据库管理软件Access 年秋.
SQL的简单查询.
可爱的蜗牛 一、蜗牛冬眠 二、蜗牛进食 三、蜗牛排泄 四、蜗牛呼吸.
10-1 資料庫管理系統簡介 10-2 關聯式資料模式和查詢語言 10-3 Access 簡介 10-4 XML 簡介
第7章利用ADO.NET 进行数据访问.
ADO .NET 簡介.
第一章 認識 Visual Basic 本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載
資料庫系統 曾俊雄.
第8章 设计数据库应用网站 本章讲述的主要内容 8.1 数据库基础知识 8.2 使用数据库系统 8.3 SQL查询基础
課程名稱:程式設計 授課老師:________
转正述职报告 乐恩公司 史航
大学生如何进行职业生涯发展规划及有效应聘 厚积薄发
科學科 污染 空氣 成因 的 : 題目 及 減少空氣污染的方法 陳玉玲 (4) 姓名 : 去到目錄.
第1章 程式語言與Visual Basic的基礎
第ㄧ章 認識 VB 2008 與主控台應用程式 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
本科生医保资料的提交.
Microsoft .NET 第4組 十月15, 2002 B 陳東傑 B 蔣佳勳
XML資料傳輸 黃笠宸 4/3.
BizTalk Server 2004.
Visual C# 2010 程式設計經典 第15章 ADO .NET與資料工具.
LINQ 建國科技大學 資管系 饒瑞佶.
第16章 Windows Form與資料繫結 16-1 資料繫結的基礎 16-2 在專案新增資料來源 16-3 使用資料來源建立單筆編輯表單
第 3 章 熟悉 SQL Server 的工作平台.
二.資料庫系統建立與管理 Access 資料庫:windows下的單機資料庫 Access 操作 Mysql資料庫介紹.
第8章 列舉器與集合 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或供拷貝.
卢斌 Software Development Engineer Microsoft Corporation
An Introduce to NHibernate
統計圖表的製作.
ADO.NET.
課程名稱:資料庫系統 授課老師:李春雄 博士
上述代码规范了 INSERT 语句的编写规范,其中:
第2章 ADO.NET 2.0概述.
第十四章 資料庫應用程式 14.1 ADO.NET簡介 14.4 資料的單筆巡覽、新增、 修改、刪除
组长:吴蔚 项目组成员:吴蔚,邱丁兰,汪琳莺
实验 2:MS Access QBE Query使用
第8章 数据的排序、搜 索和过滤.
第1章 SQL Server 2005 关系数据库简介.
数据保护技术(完整性、并发性、安全性和数据库恢复)
第9章 事务.
電子簽核教育訓練.
《网上报告厅》使用说明 北京爱迪科森教育科技股份有限公司.
SQL Injection (資料隱碼) 學生:a 吳倩瑜 指導教授:梁明章.
C# 程序设计教程 同济大学计算机系基础学科组
第 8 章 VB.NET与数据库应用程序 本章主要内容: ADO.NET体系结构; VB.NET与SQL Server数据库的连接;
第十讲 学生成绩管理系统(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
第 10 章 ADO.NET與XML.
本讲内容 SQL 概述 SQL 的查询功能 SQL 的操作功能 SQL 的定义功能.
兒少保護通報處理流程介紹 臺中市家庭暴力及性侵害防治中心 陳秀婷/張美慧 社工督導員 2012/10/19.
OrientX3.0及其改进之处 XML小组.
LINQ資料查詢技術.
1 打开 SQL Server 2005 安装盘,单击 SPLASH.HTA 文件进行安装,安装界面如图所示。
ASP.NET实用教程 清华大学出版社 第9章数据库应用 教学目标 教学重点 教学过程 2019年5月3日.
新制退休實務計算說明- 現職人員退休範例說明
本章要点: 了解ASP.NET 4.5的基础.NET Framework。
LINQ 語法簡介 設計人:顏嘉君.
IT DNA- 微軟MVP、資深IT人胡百敬 資訊產業全攻略!IT知識工作者聯手推薦! 資訊新鮮人》 專業資訊人》 知識工作者》
第三章 軟體資源管理 授課老師:褚麗絹.
浮雕畫 探索線條的魅力 劉文涵老師.
本文档介绍 1. 如何使用同一台电脑录课; 2. 如何在其他电脑录课;
安裝 Visual C Express Edition
数据库应用技术 天津电大 翟迎建.
高擴充高穩定高安全 企業級資料管理平台 Report Builder概論 錢曉明 資策會 資深講師 台灣微軟 資深講師.
Presentation transcript:

第20章 LINQ 資料查詢技術 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或拷貝

第二十章 LINQ 資料查詢技術 20.1 LINQ 簡介 20.2 如何撰寫 LINQ 查詢 20.3 LINQ to Objects 20.4 LINQ to XML 20.5 LINQ to SQL 20.6 LINQ to DataSet

20.1 LINQ 簡介 LINQ (Language-Integrated Query)資料查詢技術。 應用程式經常會在 陣列、集合、DataSet 物件、XML、SQL Server 資料庫中查詢指定的資料或進行資料排序。 不同資料來源進行查詢或排序須用不同查詢技術 或資料結構方能達成。 如在陣列中搜尋資料,可用  二分搜尋法、循序搜尋法或其它資料結構  .NET Framework 的 Array 類別的 Binary Search 靜態方法傳回欲搜尋陣列元素索引位置

20.1 LINQ 簡介 Contiunue... 若要查詢 DataSet 內 DataTable 的某一筆資料列  可用 DataTable.Rows 集合的 Find 方法傳回 欲搜尋的資料列。 查詢 SQL Server資料庫,可用 SQL 語法。 查詢 XML 文件,可用 XQuery。 面對上述不同資料來源  須學習不同資料查詢技術 才能擷取這些資料並加運用。

20.1 LINQ 簡介 Contiunue... 在 .NET Framework 3.5  新增 LINQ 資料查詢技術,讓設計師能用一致性 語法來查詢不同資料來源  如查詢陣列、集合、DataSet、XML、SQL Server 資料庫等,不需再學習不同資料查詢技術。 LINQ 最大特質 具備資料查詢能力及語言進行整合能力  具備像 SQL Query 查詢功能  可直接和 VB 與 C# 語法進行整合  使得 VB 和 C# 內建查詢的功能。

LINQ 依使用對象分成4種技術類型 1. LINQ to Objects 可查詢實作 IEnumerable 或 IEnumerable<T> 介面集合 物件,如查詢陣列、List、集合、檔案…等物件。 2. LINQ to XML LINQ to XML是一種用於 XML 查詢技術的API, 透過 LINQ 查詢運算式可查詢或排序 XML 文件, 不需額外學習 XPath 或 XQuery。 3. LINQ to SQL 可對實作 IQueryable<T> 介面的物件做查詢,也可直接 對 SQL Server 和 SQL Server Express 資料庫做查詢與編輯。 4. LINQ to DataSet 透過 LINQ 查詢運算式,可針對記憶體內的 DataSet 或 DataTable 進行查詢。

LINQ 帶來的優點: 1. 可用熟悉語法撰寫 LINQ 查詢運算式,  使用時須配合 VB 2008 或 C# 2008 與 .NET Framework 3.5 以上版本才行。 2. 使用統一的 LINQ 語法  查詢不同類型資料來源,不用額外學習其它 資料查詢技術。  降低學習負擔及專案維護成本。 3. 編譯時語法檢查與資料型別安全檢查, 提高程式資料查詢正確性。

LINQ 帶來的優點: Continue… 4. 獲得VS 2013 整合開發環境的 IntelliSense支援  撰寫 LINQ 查詢運算式時出現提示子句 或輸入「.」時,皆有相關屬性與方法列出 供您選取,不用牢記 SQL 語法。 5. 可在記憶體修改 XML文件,功能比 XPath、 XQuery更強大,更容易使用。 6. 功能強大的查詢、排序與分組功能。

20.2 如何撰寫 LINQ 查詢 查詢陣列、集合物件、DataSet、XML或 SQL Server 資料庫,LINQ 查詢語法的基本結構都是相同。 LINQ 查詢運算式(Query Expression)  先以 from 子句開頭用來指定範圍變數及要查詢 集合,此時會將集合內元素放到範圍變數中 進行查詢。  使用orderby 子句定義查詢結果的排序方式。  使用 where 設定查詢的條件。  使用 select 子句定義查詢結果要傳回欄位名稱。 最後將查詢結果傳回給指定變數。

查詢運算式語法有點類似 SQL語法,語法:

撰寫 LINQ 基本包含三階段 Step1 定義資料來源 Step2 撰寫查詢運算式 Step3 執行查詢。 以三階段練習撰寫可查詢 score 陣列中大於等於 某數(txtInput.Text)資料的 LINQ 程式。 參考範例 Linq_to_Object1.sln

執行結果: 參照 P20- 5 頁

設計輸出入介面

20.3 LINQ to Objects 使用 LINQ 語法來查詢物件的方式,只要是實作 IEnumerable<T> 介面的物件,如陣列、 List、 集合…等,皆可用LINQ to Objects 來進行查詢。 參照 P 20-8 頁

輸出結果 參照 P 20-8 頁

輸出入介面設計 參閱 P20- 9 頁

20.4 LINQ to XML LINQ to XML是用LINQ 語法來查詢、建立、 存取XML的技術,透過 LINQ 查詢語言即可 操作 XML文件,不用再學習其它的 XML類別、API、 XPath、XQuery等技術 透過 LINQ to XML撰寫 XML 程式變得簡單許多。 下面示範查詢 person.xml 文件寫法, 操作步驟 參閱 P20-11 頁

假設 person.xml 文件內容如下:

操作步驟 參閱 P 20-13頁

輸出入介面設計

輸出入介面設計 程式碼 請參閱 P20-14 頁

20.5 LINQ to SQL 20.5.1 LINQ to SQL簡介 LINQ to SQL是 LINQ 查詢技術功能之一。 是一種物件模型(Object Model) 與 關連式資料庫 Mapping 的技術。 將資料庫、資料表、資料列、資料欄位、主鍵、 限制及關聯都可直接對應至程式設計中的物件。

20.5.1 LINQ to SQL 簡介 Continue… 在查詢、新增、修改、刪除資料庫程式時, 不用再撰寫 SQL Server 資料庫的 SELECT、 INSERT、DELETE、UPDATE 敘述  因底層已處理,讓你不用處理資料庫程式設計 細節以直覺物件導向方式撰寫資料庫程式。 LINQ to SQL目前支援微軟的 SQL Server, 不支援其它廠商的資料庫。

LINQ to SQL的物件模型

20.5.2 如何自定類別撰寫 LINQ to SQL程式 LINQ to SQL 是一種與關聯式資料庫對應的技術, 資料庫會與程式中的物件直接對應。 如何將程式中的物件與資料庫做對應?  先將類別宣告為 Entity 類別,並將類別的成員對應到 資料表的欄位。  接著透過 DataContext 類別將 SQL Server資料庫 與程式中的類別成員進行對應。  最後可用 LINQ 查詢運算式進行查詢資料的動作。 DataContext 是 LINQ to SQL 的類別, 該類別包含連接到資料庫的連接字串, 若要更新資料透過 SubmitChanges方法將指定物件 寫回資料表內。

20.5.2 如何自定類別撰寫 LINQ to SQL程式 操作步驟 請參閱 P20-17頁 範例 Linq_to_SQL1.sln 練習如何將 Employee類別 對應到「員工」資料表。如下圖,dataGridView1 上會顯示員工資料表的所有記錄。 操作步驟 請參閱 P20-17頁

欄位設定 操作步驟 請參閱本章 P20-18 頁

操作步驟 請參閱 P20-22 頁

20.5.3 用O/R 設計工具撰寫 LINQ to SQL程式 VS 2013或VS Express 2013 for Windows Desktop 提供 O/R 設計工具  透過拖拉方式即可動態產生Entity 類別。 Entity 類別 可直接對應至 SQL Server資料庫實體的資料表。 範例示範 操作步驟 請參閱本章 P20-24 頁

操作步驟 參閱 P20-28頁

輸出結果 操作步驟 請參閱 P20-28頁

輸出入介面設計 操作步驟 請參閱本章 P29-36頁

20.5.4 如何使用 LINQ to SQL 編輯資料表記錄 DataContext 物件提供 InsertOnSubmit 方法  可在記憶體中新增一筆記錄(即Entity物件)  透過 DeleteOnSubmit 方法可刪除指定記錄。 當編輯記憶體資料後  透過 DataContext 物件提供 SubmitChanges 方法  將對應到資料表的 Entity 物件寫回資料庫中。 練習如何透過 LINQ to SQL來新增、修改、刪除 員工資料表的記錄。

操作步驟 請參閱 P20-36頁

輸出入介面設計 操作步驟 請參閱 P20-36頁

20.6 LINQ to DataSet 20.6.1 LINQ to DataSet 簡介 LINQ to DataSet 著重強化記憶體 DataSet 查詢能力。 可將異質性資料庫的資料填入 DataSet 內, 再用 LINQ to DataSet 進行查詢 DataSet。 LINQ to DataSet 適用於各類型資料庫。 若使用非 SQL Server 資料庫,可用 LINQ to DataSet 來強化應用程式的查詢能力。

20.6.1 LINQ to DataSet 簡介 DataSet 分為 具型別DataSet 與 不具型別DataSet。 不具型別 DataSet是 第16章直接使用 「DataSet ds = new DataSet();」 敘述所產生的 DataSet。 由於 LINQ to DataSet 只能查詢有實作 IEnumerable 或 IEnumerable<T> 介面的 DataTable 物件, 不具型別的 DataSet 的 DataTable 沒實作IEnumerable 或 IEnumerable <T> 介面。

19.6.1 LINQ to DataSet 簡介 Continue... ADO .NET 4.5 的 DataTable 提供兩個擴充方法, 使 DataSet 與 DataTable 支援 LINQ to DataSet 查詢: 1. AsDataView(): 傳回支援 LINQ 查詢的 DataView 物件。 2. AsEnumerable(): 傳回實作IEnumerable <T> 泛型物件,泛型參數 T 為 DataRow。透過此方法使 DataTable 可用 LINQ 進行查詢。

20.6.1 LINQ to DataSet 簡介 Continue... 使用 LINQ 查詢運算式查詢不具型別 DataSet 得到查詢結果後,接著將查詢結果進行資料繫結。 若LINQ 查詢結果不具資料繫結功能 可透過三種方式 來達成: 1. 透過AsDataView()方法 將查詢結果轉成DataView物件。 2. 透過ToList() 方法 將查詢結果轉成List<T> 泛型物件。 3. 透過 CopyToDataTable()方法或自訂新的 DataTable 將查詢結果轉成 DataTable 物件。 若使用 具型別 DataSet 則沒有上面問題。

20.6.2 用 LINQ to DataSet 查詢不具型別 DataSet

操作步驟 請參閱 P20-43頁

輸出入介面設計 操作步驟 請參閱 P20-43頁

20.6.3 用 LINQ to DataSet 查詢具型別 DataSet 除須用AsEnumerable方法將 DataTable 轉成 IEnumerable<T> 泛型物件 以便進行 LINQ 查詢外 還要透過 Field<T> 方法進行型別轉換等麻煩事。 若透過 LINQ to DataSet 來查詢 具型別 DataSet 上述這些問題將迎刃而解。

20.6.3 用 LINQ to DataSet 查詢具型別 DataSet 透過 Linq_to_DataSet2.sln 範例說明如何使用 「DataSet設計工具」來設計具型別DataSet 接著透過 LINQ to DataSet 來查詢具型別 DataSet。 本例執行結果與Linq_to_DataSet1.sln 同。 操作步驟 請參閱 P20-46頁

輸出入介面設計

本章結束 …