2008年3月26日 星期三
我也有黑貓
,害我受到嚴重打擊!好歹我和他還是一起上過Photoshop課程! 馬上找出Wacom練習畫我的黑貓! 這就是我第一個手繪的黑貓!
Step-By-Step教學(3):使用LinqDataSource查詢陣列資料
LinqDataSource並非限制在只能夠存取SQL Server的資料,你可以利用它來存取.NET中集合或陣列的資料。
例如有一個Books類別的定義如下:
您可以網頁中加入一個GridView控制項,與一個LinqDataSource控制項,並且設定GridView控制項的DataSourceID為「LinqDataSource1」。然後設定LinqDataSource的ContextTypeName為「Books」,設定TableName為「Book」屬性:
網頁執行的結果:
2008年3月25日 星期二
Step-By-Step教學(2):在不同的瀏覽器顯示不同的ASP.NET主版頁面
- 在ASP.NET 3.5網站,建兩個Master Page,分別為 SystexIE.master與SystexFirefox.master。
- SystexIE.master畫面看起來如:
- SystexFirefox.master畫面看起來如:
- 加一個DeviceSpecMaster.aspx網頁,選SystexIE.master,然後修改Page宣告為
<@ Page Language="C#"
ie:MasterPageFile="~/SystexIE.master"
Mozilla:MasterPageFile="~/SystexFirefox.master" %> - 在IE中執行看起來的樣子如:
在Firefox中執行看起來的樣子如:
2008年3月22日 星期六
Step-By-Step教學(1):改寫LINQ to SQL資料異動行為
1. 建立一個Windows表單專案。
2. 加入LINQ to SQL類別,命為Northwind.dbml。
3. 開啟Server Explorer工具,連接到Northwind資料庫,然後將Region資料表拖曳到LINQ to SQL設計畫面左方的區塊之中。
4. 在伺服器總管,Northwind.dbml檔案方案滑鼠右鍵,選取「View Code」,Visual Studio 2008將會建立一個Northwind.cs檔案,其中包含一個NorthwindDataContext部分類別的定義。
5. 在NorthwindDataContext類別的大括號中,輸入partial一個字,Visual Studio會自動列出所有可以改寫的部分方法,包含InsertRegion、OnCreated、DeleteRegion與UpdateRegion方法,選取任一方法後,按Tab鍵,Visual Studio會自動產生方法的函式定義。
6. 修改Northwind.cs
1 using System.Data;
2 using System.Data.SqlClient;3 namespace CustomLTSQL {
4 partial class NorthwindDataContext {5 partial void InsertRegion(Region instance) {
6 SqlConnection cn = new SqlConnection(this.Connection.ConnectionString);7 SqlCommand cmd = new SqlCommand("Insert into Region values(@RegionID,@RegionDescription)", cn);
8 cmd.Parameters.AddWithValue("@RegionID", instance.RegionID);9 cmd.Parameters.AddWithValue("@RegionDescription", instance.RegionDescription);
10 cn.Open();11 cmd.ExecuteNonQuery();
12 cn.Close();13 }
14 partial void DeleteRegion(Region instance) {15 SqlConnection cn = new SqlConnection(this.Connection.ConnectionString);
16 SqlCommand cmd = new SqlCommand("delete from Region where RegionID=@RegionID", cn);17 cmd.Parameters.AddWithValue("@RegionID", instance.RegionID);
18 cn.Open();19 cmd.ExecuteNonQuery();
20 cn.Close();21 }
22 partial void UpdateRegion(Region instance) {23 SqlConnection cn = new SqlConnection(this.Connection.ConnectionString);
24 SqlCommand cmd = new SqlCommand("update Region set RegionDescription=@RegionDescription where RegionID=@RegionID", cn);25 cmd.Parameters.AddWithValue("@RegionID", instance.RegionID);
26 cmd.Parameters.AddWithValue("@RegionDescription", instance.RegionDescription);27 cn.Open();
28 cmd.ExecuteNonQuery();29 cn.Close();
30 }31 }
32 }7. 在表單中加入三個Button,分別為Insert、Update、Delete,然後在其Click事件處理常式加入以下程式,分別進行新增、刪除、修改資料的動作:
1 using System;2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;5 using System.Drawing;
6 using System.Linq;7 using System.Text;
8 using System.Windows.Forms;9 namespace CustomLTSQL {
10 public partial class Form1 : Form {11 public Form1() {
12 InitializeComponent();13 }
14 private void button1_Click(object sender, EventArgs e) {15 NorthwindDataContext db = new NorthwindDataContext();
16 Region r = new Region();17 r.RegionID = 999;
18 r.RegionDescription = "new Region";19 db.Regions.InsertOnSubmit(r);
20 db.SubmitChanges();21 }
22 private void button2_Click(object sender, EventArgs e) {23 NorthwindDataContext db = new NorthwindDataContext();
24 Region reg = (from r in db.Regions25 where r.RegionID==999
26 select r).Single<Region>();27 db.Regions.DeleteOnSubmit(reg);
28 db.SubmitChanges();29 }
30 private void button3_Click(object sender, EventArgs e) {31 NorthwindDataContext db = new NorthwindDataContext();
32 Region reg = (from r in db.Regions33 where r.RegionID == 999
34 select r).Single<Region>();35 reg.RegionDescription = "Super new Region";
36 db.SubmitChanges();37 }
38 }39 }
2008年3月18日 星期二
2008年3月14日 星期五
LINQ簡介
LINQ (Language INtegrated Query),能夠利用.NET程式語言進行物件的查詢。.NET的程式語言,像是C# 3.0 (Visual C# 2008)、Visual Basic 9.0 (Visual Basic 2008) 都可利用一個LINQ提供的查詢運算式(Query Expression)語法來整合查詢能力。
LINQ為C#、Visual Basic程式語言提供基本查詢的能力,使用類似SQL查詢的語法,透過from子句指定查詢來源;利用where子句設定篩選條件;透過Order by子句做排序;以Group by子句對資料分組,再利用select子句回傳資料。再者,LINQ查詢也支援複雜的join語法,讓你快快樂樂地在程式語言中,進行複雜的連結運算, 恣意搜尋資料。
LINQ包含以下部份:
- LINQ to Object:可查詢集合與陣列中的資料
- LINQ to DataSet:查詢DataSet/DataTable中的資料。
- LINQ to SQL:查詢或異動微軟SQL Server資料庫的資料。
- LINQ to XML:查詢XML節點。
其中對於資料庫存取最重要的就是LINQ to SQL與LINQ to DataSet:
LINQ to SQL
LINQ to SQL,可以利用類似SQL查詢的語法,在執行時期將關連式資料庫的資料庫視為物件,以進行管理及查詢。這個功能真是酷斃了,想像一下你在程式中,下個類 似SQL的直覺式語法,就可以查詢物件的資料、篩選資料、做排序,而且,你的用戶端機器還不需要裝一台SQL Server。
LINQ to SQL內建了物件與關聯式資料兩者之間對應的架構,讓程式設計師能夠建立對應於資料庫結構的.NET物件模型。有了物件模型後,便可透過LINQ語法來查詢、或修改其中的資訊。而建立對應到資料庫物件的物件模型此等雜工,就交由工具去幫你做。
LINQ to DataSet
ADO.NET 提供的DataSet與DataTable具備有將資料暫存在用戶端電腦上的能力。DataSet就如離線的資料庫一般,可以存放一到多個資料表,每個資 料表為一個DataTable物件。DataSet也可以描述資料表與資料表之間的關聯,以及一對一、一對多等特色。雖然DataSet與 DataTable提供一些方法,具備有篩選、搜尋資料的能力,但認真來說,這些功能稍嫌簡陋,缺乏彈性,若想要做一些複雜的查詢,往往不能靠 DataSet、DataTable來達成。
當你利用DataAdapter把資料載入DataSet之後,若需要查詢其中的資料,就可以使用LINQ to DataSet。程式設計師可以針對DataSet來撰寫LINQ查詢。
應用程式的支援
LINQ 可以支援資料繫結 (Data Binding) 功能,不僅在Windows表單程式中可以很方便利用托曳方式進行設定,快速設計出應用程式介面,也可以在ASP.NET 網頁中,利用附加在ASP.NET 3.5版中的LinqDataSource控制項,來設計支援LINQ功能的網頁。未來不管是設計任何一種類型的.NET程式都可以加入LINQ,讓查詢 變得更簡單,讓資料的截取變的更方便。
2008年3月13日 星期四
2008年3月11日 星期二
VS 2008 全系列書 - 延期出貨!
"VS書系因封面完稿無法無期完成, 因而必須延後出版"
想不到最大的關卡是在封面設計無法如期完成!
出書時間預估延後到 3/19 日
不禁想起一句話: 人算不如天算!
2008年3月10日 星期一
微軟正式發佈VS2008新認證
以下MCTS 六個認證有一科共同考試科目(70-536),這科是.NET 2.0的核心科目,有考過.NET 2.0 MCTS/MCPD認證的人應該都考過啦~只是換個新名稱而以.
新的MCTS 認證與考試代碼(.NET Framework 3.5)
Visual Studio 2008共有六個新的 MCTS 認證:
(1) MCTS: .NET Framework 3.5, Windows Presentation Foundation Applications
- 考試科目兩科:
- 70-536: TS: Microsoft .NET Framework, Application Development Foundation
- 70-502 TS: Microsoft .NET Framework 3.5, Windows Presentation Foundation Application Development
(2) MCTS: .NET Framework 3.5, Windows Forms Applications
- 考試科目兩科:
- 70-536: TS: Microsoft .NET Framework, Application Development Foundation
- 70-505: TS: Microsoft .NET Framework 3.5, Windows Forms Application Development
- 考試科目兩科:
- 70-536: TS: Microsoft .NET Framework, Application Development Foundation
- 70-562: TS: Microsoft .NET Framework 3.5, ASP.NET Application Development
- 考試科目兩科:
- 70-536: TS: Microsoft .NET Framework, Application Development Foundation
- 70-503: TS: Microsoft .NET Framework 3.5, Windows Communication Foundation Application Development
- 考試科目兩科:
- 70-536: TS: Microsoft .NET Framework, Application Development Foundation
- 70-504: TS: Microsoft .NET Framework 3.5, Windows Workflow Foundation Application Development
- 考試科目兩科:
- 70-536: TS: Microsoft .NET Framework, Application Development Foundation
- 70-561 : TS: Microsoft .NET Framework 3.5, ADO.NET Application Development
新的 MCPD認證(.NET Framework 3.5)
微軟共推出3個MCPD認證,需考過基礎 MCTS認證,再加考科
(1) MCPD: Windows Developer 3.5
- 考試開始日期:
- 需先通過MCTS: .NET Framework 3.5, Windows Forms Applications認證 (2科考試)
- 加考一科 :
- 70-563: PRO: Designing and Developing Windows Applications using Microsoft .NET Framework 3.5
- 需先通過MCTS: .NET Framework 3.5, ASP.NET Applications認證 (2科考試)
- 加考一科 :
- 70-564: : PRO: Designing and Developing ASP.NET Applications using Microsoft .NET Framework 3.5
- 需先通過以下4個認證:
- MCTS: .NET Framework 3.5, Windows Forms Applications (2科考試)
MCTS: .NET Framework 3.5, Windows Communication Foundation Applications (2科考試)
MCTS: .NET Framework 3.5, ADO.NET Applicaitons (2科考試)
MCTS: .NET Framework 3.5, ASP.NET Applications (2科考試) - 加考一科:
- 70-565: PRO: Designing and Developing Enterprise Applications using Microsoft .NET Framework 3.5
若有Visual Studio 2005的MCPD舊認證者,可以考以下升級考試:
(1) 擁有MCPD: Windows Developer (Visual Studio 2005) 認證
- 加考一科:
- Exam 70-566: Upgrade: Transition your MCPD Windows Developer Skills to MCPD Windows Developer 3.5
- 取得 兩個認證:
- MCPD: Windows Developer 3.5
- MCTS: .NET Framework 3.5, Windows Forms Applications
- 加考一科 :
- 70-567: Upgrade: Transition your MCPD Web Developer Skills to MCPD ASP.NET Developer 3.5
- 取得兩個認證:
- MCPD: ASP.NET Developer 3.5
- MCTS: .NET Framework 3.5, ASP.NET Applications
- 加考2科:
- 70-568: Upgrade: Transition your MCPD Enterprise Application Developer Skills to MCPD Enterprise Application Developer 3.5, Part 1
- 70-569: Upgrade: Transition your MCPD Enterprise Application Developer Skills to MCPD Enterprise Applicatin Developer 3.5, Part 2
- 取得5個認證:
- MCPD: Enterprise Application Developer 3.5
MCTS: .NET Framework 3.5, ASP.NET Applications
MCTS: .NET Framework 3.5, ADO.NET Applications
MCTS: .NET Framework 3.5, Windows Forms Applications
MCTS: .NET Framework 3.5, Windows Communication Foundation Applications
70-536參考資源:
- 參考用書: MCTS Self-Paced Training Kit (Exam 70-536): Microsoft® .NET Framework—Application Development Foundation, Second Edition
- 準備方向:Preparation Guide for Exam 70-536
- 參考課程:
- 2956A: Core Foundations of Microsoft .NET 2.0 Development(3天)
- 2957A:Advanced Foundations of Microsoft .NET 2.0 Development(3天)
- 考試開始日期:現報名現考!
- 參考用書:MCTS Self-Paced Training Kit (Exam 70-502): Microsoft® .NET Framework 3.5—Windows® Presentation Foundation
- 準備方向:Preparation Guide for Exam 70-502
- 參考課程:6460: Visual Studio 2008: Windows Presentation Foundation(3天)
- 考試開始日期:現報名現考!
- 參考課程: Course 6461: Visual Studio 2008: Windows Communication Foundation (3天)
- 考試開始日期:現報名現考!
- 參考課程:Course 6462: Visual Studio 2008: Windows Workflow Foundation(2天)
- 考試開始日期:現報名現考!
- 參考用書:MCTS Self-Paced Training Kit (Exam 70-505): Microsoft® .NET Framework 3.5—Windows® Forms Application Development
- 參考課程: Course 6265: Visual Studio 2008 : Windows Forms (5 days)(未定)
- 準備方向:Preparation Guide for Exam 70-505
- 考試開始日期:
70-561參考資源:
- 參考課程:6464: Visual Studio 2008 Connected Systems: ADO.NET 3.5(2天)
- 考試開始日期:現報名現考!
70-562參考資源:
-
參考用書:MCTS Self-Paced Training Kit (Exam 70-562): Microsoft .NET Framework 3.5 - ASP.NET (2009年第一季)
- 準備方向:Preparation Guide for Exam 70-562
- 參考課程:2310C :Developing Web Applications Using Microsoft Visual Studio 2008(5天)(4/24)
- 參考課程:6463: Visual Studio 2008 - ASP.NET 3.5(2天)
- 考試開始日期:現報名現考!
- 準備方向:Preparation Guide for Exam 70-563
考試開始日期:
70-564參考資源:
- 準備方向:Preparation Guide for Exam 70-564
考試開始日期:
70-565參考資源:
考試開始日期:
本文最後修改日期 : 2008/8/11
2008年3月7日 星期五
ADO.net 2.0 vs ADO.net 3.5
根據稍微軟的官方網站說明,ADO.net 3.5增加以下新功能 :
- Language-Integrated Query (LINQ)
- New Features in SqlClient for SQL Server 2008
但嚴格說起來,DataSet設計工具是屬於Visual Studio 2008而非ADO.net函式庫的一部份,倒也不能歸類到ADO.net的新功能吧! 大家也不用太過擔心, 因為舊的Visual Studio 2005程式可直接升級Visual Studio 2008,程式還是可以正常運作,不過使用升級功能升級時,Visual Studio 2005產生的具型別資料集程式不會跟著升級喔~米米貓的解決方式是把XSD檔從檔案總管直接拖曳到專案之中,它就會產生新的具型別資料集程式碼。
另外DataSet設計工具會為專案建立一個新的物件,叫做TableAdapterManager,用來管理具型別資料集中有相關聯的資料之更新動作,例如先更新Master資料表,再更新Details資料表。
以下內容節錄自米米貓 ADO.net 3.5精研講座一書第一章
ADO.NET在 2003年推出時,內建在.NET Framework 1.0之中,當時的版本為1.0。在2005年.NET Framework 2.0版推出時,內建了ADO.NET 2.0版。
在 2006年底微軟推出一個.NET Framework 3.0版本,在此版本全面提供了更好的服務導向 (SOA) 基礎技術、更生動活潑的互動式應用程式介面,以及更嚴謹安全的網路通訊架構和企業商業流程的引擎。.NET Framework 3.0是一個附加在.NET Framework 2.0架構之上,讓程式開發者在設計應用程式的過程中能更佳得心應手的程式庫、其中主要包含了幾大部份:
• Windows Presentation Foundation (WPF) ,以新的應用程式技術架構提供程式開發人員設計具視覺效果,且畫面炫的程式介面。
• Windows Communication Foundation (WCF) ,有安全通訊能力的應用程式。
• Windows Workflow Foundation (WF) ,整合商業流程的應用程式。
• Windows CardSpace (WCS) ,代表在不同的情境下,個人的身分識別。
.NET Framework 2.0提供的功能並沒有絲毫變動,這也就是說,關於ADO.NET 2.0提供的功能是完全一樣的,版本命名也沿用2.0版。當你熟悉了.NET Framework 2.0之後,便可以利用所學知識與技能,再搭配.NET Framework 3.0的架構發展出更佳的企業級,支援網際網路能力的應用程式。
時 序邁入2007年,微軟推出了.NET Framework 3.5版。.NET Framework 3.5是以 .NET Framework 2.0為基礎,整合.NET Framework 3.0版提供的功能,再外加上新一代的LINQ、ASP.NET 3.5與其它各式各種服務,它們之間的關係,請參考圖1-1。
從中可看出,在 Visual Studio 2008開發工具與.NET Framework 3.5版發行時,ADO.NET核心功能部份並沒有變動,還是以ADO.NET 2.0為基礎。您可以從GAC (預設是C:\Windows\Assembly目錄) 中檢視ADO.NET 核心類別庫System.Data.dll的版本,它還是2.0版。但.NET Framework 3.5多了一些跟ADO.NET相關的擴充函式庫,如System.Data.DataExtensions.dll (3.5版)、System.Data.Linq.dll (3.5版),提供額外的資料存取功能。換句話說,ADO.NET 2.0的程式可以毫無問題的正確移轉到.NET Framework 3.5的平台上執行,也能利用新的函式庫帶來的好處。
在.NET Framework 3.5版所提供的ADO.NET就姑且稱之為ADO.NET 3.5版吧! 因為官方的文件中並沒有特別定義它的版本,但筆者身為微軟認證講師,從微軟預計出版的官方教材中與微軟出版社將推出的書籍名稱中,瞧出一些端倪,微軟將之 命為ADO.NET 3.5版。
不過在這個ADO.NET 3.5版本正式發行之前,ADO.NET 有個3.0的測試版,可惜在.NET Framework 3.5正式發行時,並不包含ADO.NET 3.0測試版中主張要提供的ADO.NET Entity Framework,也不提供Microsoft Synchronization Services for ADO.NET。ADO.NET Entity Framework主要的功能是,讓程式設計師能夠透過一個對應到資料結構描述資訊的Entity資料模型之概念層,很容易地操作資料。
Microsoft Synchronization Services for ADO.NET 是一個開發架構,著重在2層式、N-層式應用程式(即分散式應用程式),以及服務導向程式之間的資料同步動作。它提供一組API介面,和元件,讓行動裝置 應用程式、資料服務與本機資料儲存體能同步保持一致,以設計更完善的離線應用程式。
微軟打算未來正式發行時,再以擴充程式的方式提供這些新功能, 因此此部份不在本書的討論範圍。另外,雖然在作者寫稿之時,SQL Server 2008還沒有正式推出,但ADO.NET 3.5版本中也提供許多支援SQL Server 2008 的新功能,像新的date、time資料型別等等。
2008年3月5日 星期三
Visual Studio 2008 全系列書
- ASP.NET 3.5 最佳實務講座 -> Sophie: KISS.NET & 遺忘技術的角落
- ADO.NET 3.5 精研講座 -> 米米貓
- LINQ最佳實務講座 -> 有一面之緣的康廷數位
- Visual C# 2008 精研講座 -> John的技術文件
- Visual Basic 2008最佳實務講座 -> Anita 的.NET 世界
為配合新書促銷活動,買書首購有折扣,還有送公仔喔~ 請鎖定悅知網站
不過,公仔能當貓罐罐吃嗎???
預計出廠時間是 3月13日到3/14日, 屆時各大書局都會鋪貨!
ADO.NET 3.5精研講座
ADO.NET 3.5精研講座
此書改版自米米貓前一本著作 ADO.NET 2.0 實戰講座。
只是出版社的大大不讓人家在封面上用米米貓的真名付印
也不擺米米貓的照片,真令人傷心!
那麼此本書與上一版有何不同? ADO.NET 2.0基本上核心並無變動,
當然書前1-12章內容也差不多啦。
13- 17章是從難產已作古,從未面市的ADO.NET 2.0精研講座一書擷取出來。
18-19則是因應.NET Framework 3.5 引進的LINQ特色重新撰寫的。
改變最大的是此書是使用Visual C# ,
而ADO.NET 2.0 實戰講座是純粹的Visual Basic範例。
所以米米貓的舊讀者,買書之前要三思一下, 不要說我是來騙錢啦!
這邊是試讀章節~
ADO.NET 3.5精研講座內容概覽
本書內容以循序漸進方式,來介紹ADO.NET,和應用程式的設計。本書分為兩大主軸,《基本心法篇》介紹ADO.NET的物件的概念與基礎應用。《實戰主題篇》則是針對較進階的主題做專題式的介紹。
基本心法篇
1. ADO.NET資料存取技術概論
本章概覽ADO.NET的物件模型以及適用的平台,和它可應用的領域。從ADO.NET架構、物件模型、DataSet、.NET資料提供者、錯誤處理機制,以及ADO.NET和XML的關係都有概括性的介紹。
2. 使用Visual Studio 2008管理資料
Visual Studio 2008是一套完整的開發工具,能夠開發Microsoft Visual C# 2008 (C# 3.0)、Visual Basic 2008 (9.0),與Visual C++等程式語言的專案。有了工具的輔助,建立資料庫應用程式的動作將更為得心應手。本章將介紹Visual Studio 工具所提供的「伺服器總管」視窗,說明如何利用此視窗,管理SQL Server 2005、SQL Server 2005 Express、Excel,與Access等多種不一樣的資料庫。
3. 連接到資料庫
在這 一章中將要介紹建立ADO.NET應用程式的第一步,了解如何使用Connection物件,連接到常用資料來源,如SQL Server 2000/2005、SQL Server 2005 Express、Oracle 10g、MySQL、Access、Excel、文字檔案等等。
4. 使用Command與預存程序
Command物件可以用來查詢資料、可以用來執行資料的新增、刪除、修改動作,在這個章節中,將專注在介紹Command物件的使用方式。
5. 使用DataReader讀取資料
DataReader 物件提供一個簡單有效率的方式,讓應用程式瀏覽回傳的資料。使用DataReader從資料庫回傳的資料是唯讀 (Read-only)、只能向下捲動 (Forward-only) 的串流 (stream) 資訊。所謂串流資訊指的是位元組陣列資料。本章將討論DataReader的使用方式,並以一些範例程式,說明DataReader的應用,例如讀取資料 庫中的二進位圖片檔、Excel檔案、文字檔案。
6. 離線的資料儲存體--DataSet
DataSet 與DataTable是ADO.NET架構中功能相當強大的資料存取物件,可以將之視為一個離線的資料庫。本章將討論如何建立 DataSet/DataTable、如何使用資料繫結技術與瀏覽資料、如何建立主鍵、唯一的條件約束、自訂外部索引鍵條件約束、自訂運算行欄位及新增、 刪除及修改DataRow,以及DataSet/DataTable如何記錄離線環境中資料的異動等議題。
7. XML結構描述與具型別資料集
在 這一章中,將了解ADO.NET與XSD結構描述資訊的關聯性。在本章將使用Visual Studio 2008建立具型別資料集、及如何將結構描述資訊載入到DataSet/DataTable之中,或把DataSet/DataTable的結構描述資訊 儲存成XML檔案。
8. 使用DataAdapter異動資料
DataAdapter物件是 ADO.NET資料提供者的一部份,包含了Connection物件、DataReader物件,和Command等物件。它也像是一個容器一般,可以包 含多個Command物件,分別對資料進行新增、刪除、修改、查詢資料的動作。本章也說明如何在離線的環境,將資料從資料庫伺服器下載到用戶端電腦,修改 資料後,再更新回資料庫。
9. DataRelation與ForeignKeyConstraint
DataSet 中可以存放多個DataTable,並可以建立各DataTable之間的一對多,或多對多關聯,在這一章中,將深入探討DataRelation物件的 使用方式,透過DataRelation搜尋父子DataTable中相關的資料。為了維護資料的完整性,在定義DataRelation物件時,也可以 順便建立ForeignKeyConstraint,本章將說明DataRelation與ForeignKeyConstraint的相似與不同之處。
10. 使用TableAdapter開發資料存取程式
本 章介紹Visual Studio 2008 開發工具所提供的「資料來源」視窗、「資料來源組態精靈」,幫助程式設計師,快速地建立資料庫連線,只要透過一些屬性設定,和少量的程式碼,就可建立一個 功能完整的資料存取程式,讀取資料庫資料,以及進行資料刪除、修改作業。並以實例說明如何使用資料庫、Web服務、物件,做為應用程式的資料來源。
11. 再談DataTable與DataView物件
將資料載入DataSet的DataTable當中後,可能會想要從中搜尋某筆資料,若找尋某些符合搜尋條件的資料,再或者想要按不同的欄位來排序資料。這一章將介紹如何在DataTable中搜尋資料,以及使用DataView來進行排序、搜尋資料的不同實作方式。
實戰主題篇
12. 建立ASP.NET資料存取網頁
在 這個章節中,將介紹如何利用Visual Studio 2008開發工具,建置ASP.NET資料存取網頁。瞭解何謂資料來源元件、使用SqlDataSource、ObjectDataSource撰寫能新 增、刪除、修改、查詢資料的全功能網頁。並介紹ASP.NET的資料繫結控制項,如GridView、DetailsView、FormView等等。
13. 通用資料存取模型
在ADO.NET的資料提供者模型 (Provider Model)提供您撰寫與資料提供者無關的程式碼,能夠在執行時期動態決定使用要使用的資料提供者,增加設計的彈性。本章探討Provider Factory 模型的觀念與實際的應用。
14. 離線資料存取策略
離線應用程式進行批次更新作業時,常常會發現資料已經被其它使用者變更,而造成離線衝突,這一章中將介紹ADO.NET如何記錄這些資料的異動與版本,並說明如何偵測是否發生衝突,以及在發生衝突後可採用的資料更新策略。
15. MARS、非同步命令與SqlBulkCopy
本 章介紹三大主題,如何使用多重作用結果集 (MARS),在同一個資料庫連線中開啟多個結果集。非同步命令則利用多執行緒的概念,指派需時冗長的工作給工作執行緒在背景執行,並說明.NET中設計 的四種非同步模型,以善用多執行緒帶來的優勢。第三個主題則是SqlClient資料提供者專屬的大量資料複製能力,能將大量資料快速地匯入SQL Server資料庫。
16. ADO.NET與交易處理
為了資料的正確性,交易是很重要的, 應用程式能藉由此機制確保交易過程中牽涉到的資料的一致性。本章說明交易的基本概念與重要性,並介紹如何在ADO.NET使用本機交易,以及在分散式應用 程式中,利用System.Transaction命名空間下的物件進行分散式交易處理。最後,說明交易的鎖定與隔離機制。
17. .NET CLR整合
本 章探究SQL Server 2005版後的新功能,支援.NET共通語言執行環境。您可以利用C# 來撰寫預存程序、聚合函數、使用者自訂函數、使用者自訂型別與觸發器,然後將程式載入SQL Server執行,善用.NET類別來補足SQL語法不足之處,例如開啟硬碟中檔案。
18. 與LINQ to SQL接軌
在.NET Framework 3.5版本最另人激賞的新功能,就是LINQ查詢 (.NET Language Integrated Query),在程式語言中加入物件的查詢能力。針對ADO.NET部份,LINQ提供了LINQ to ADO.NET,包含兩大主題:LINQ to SQL與LINQ to DataSet。
本章介紹LINQ查詢的基本語法,利用Visual Studio工具LINQ to SQL範本建立DataContext物件來操作資料,利用類似SQL查詢的語法,查詢物件的資料、篩選資料、做排序或資料的加總。除查詢之外,LINQ to SQL也可整合預存程序來修改資料庫資料。本章除探討資料異動的主題之外,也會說明離線衝突的解決方式。本章最後以Step-by-Step方式介紹如何 在網頁中整合LINQ,並利用ASP.NET 3.5版提供的新DataList與DataPager伺服器控制項與LinqDataSource資料來源控制項來設計允許自訂資料分頁的網頁。
19. 與LINQ to DataSet共舞
LINQ to DataSet能彌補在DataSet中查詢的不足之處,能針對DataSet中的多個DataTable做連結(join)查詢,但不著重在資料如何更 新回資料來源問題。本章介紹LINQ to DataSet提供的DataRowExtensions與DataTableExtensions擴充類別,為DataSet查詢提出許多擴充功能,能 利用LINQ語法進一步篩選DataSet中的資料。