內容簡介
深入探索 .NET資料存取:ADO.NET + SqlDataSource + LINQ(第二版)
內容簡介
本書是針對「已經會寫」資料庫程式的程式設計師所設計的案頭書,當遇到資料存取相關問題時可以隨時拿出來查閱。不光是知道這些方法、屬性是什麼(名詞解釋)?更有範例可以直接套用、學習與解惑(不只是What,更要會動手寫,知道怎麼做How To Do)。
◈以微軟Microsoft Doc(前MSDN)網站為基礎,介紹最常用、次常用的屬性與方法之實務應用。
◈除了ASP.NET(Web Form)網頁,也搭配Windows Form的ADO.NET程式,演示跨平台資料存取。部分章節更提供ASP.NET MVC 5的範例。
◈以.NET Framework為主,DataReader與SqlCommand、DataSet與SqlDataAdapter屬性與方法。
◈EntLib企業函式庫(Enterprise Library)的資料存取(DAAB),快速整合DataReader與DataSet兩種寫法。
◈開放式並行存取(Optimistic Concurrency)、.NET 2.0~4.x的非同步(Async.與Await)程式。
◈撰寫分頁程式,搭配SQL Server資料庫的Row_Number、Offset…Fetch Next,實踐資料來源的分頁展示。
◈Web Service與WCF Service搭配jQuery、JSON,做出Facebook無限下拉的資料呈現(AJAX分頁程式)。
◈System.Transactions命名空間、TransactionScope與資料庫交易、SqlBulkCopy。
◈SqlParameter參數避免資料隱碼(SQL Injection)攻擊。
◈ASP.NET Web Form專用的SqlDataSource控制項的解說與剖析。
◈LINQ與ADO.NET、LINQ語法介紹。
☞【範例檔下載網址:https://reurl.cc/E2baEm】☜
內容簡介
本書是針對「已經會寫」資料庫程式的程式設計師所設計的案頭書,當遇到資料存取相關問題時可以隨時拿出來查閱。不光是知道這些方法、屬性是什麼(名詞解釋)?更有範例可以直接套用、學習與解惑(不只是What,更要會動手寫,知道怎麼做How To Do)。
◈以微軟Microsoft Doc(前MSDN)網站為基礎,介紹最常用、次常用的屬性與方法之實務應用。
◈除了ASP.NET(Web Form)網頁,也搭配Windows Form的ADO.NET程式,演示跨平台資料存取。部分章節更提供ASP.NET MVC 5的範例。
◈以.NET Framework為主,DataReader與SqlCommand、DataSet與SqlDataAdapter屬性與方法。
◈EntLib企業函式庫(Enterprise Library)的資料存取(DAAB),快速整合DataReader與DataSet兩種寫法。
◈開放式並行存取(Optimistic Concurrency)、.NET 2.0~4.x的非同步(Async.與Await)程式。
◈撰寫分頁程式,搭配SQL Server資料庫的Row_Number、Offset…Fetch Next,實踐資料來源的分頁展示。
◈Web Service與WCF Service搭配jQuery、JSON,做出Facebook無限下拉的資料呈現(AJAX分頁程式)。
◈System.Transactions命名空間、TransactionScope與資料庫交易、SqlBulkCopy。
◈SqlParameter參數避免資料隱碼(SQL Injection)攻擊。
◈ASP.NET Web Form專用的SqlDataSource控制項的解說與剖析。
◈LINQ與ADO.NET、LINQ語法介紹。
☞【範例檔下載網址:https://reurl.cc/E2baEm】☜
作者簡介
作者簡介
周棟祥 博士
現職:國立高雄科技大學 資訊管理學系副教授兼教育事業暨產品推廣處處長
學歷:國立政治大學 資訊管理博士(2004/09~2008/02)
國立中正大學 資訊管理碩士(1999/09~2001/07)
研習:德國阿亨工業大學(RWTH AACHEN University)
新加坡國立大學(National University of Singapore)
新加坡南洋理工大學(Nanyang Technological University)
經歷:企業整合中心主任
研究發展處副研發長
區域產學合作中心主任
研究發展處推廣教育中心主任
研究發展處產學組組長
區域產學合作中心執行長
研究發展處推廣服務及教育組組長
管理學院院長特別助理
中華電信助理研究員
專長領域:服務科學、客戶關係管理、電信營運管理、電子商務、行動服務、工業4.0、物聯網與大數據應用
吳進魯
學歷:國立屏東科技大學 資訊管理研究所碩士
經歷:
(1)1998~2000年為國立屏東科技大學計算機中心、屏東縣教育局舉辦的多場資訊教育訓練擔任講師(授課時數超過250小時)。
(2)國防役四年。資策會各式網站系統開發(七年經驗)、電信產業分析與Internet指標研究工作。
(3)資策會 教育訓練中心(南區)專任講師(專長Web程式設計)。負責600小時之就業輔導班。
(4)星動計畫B2Bi(XML資料交換,採用RosettaNet標準),VB 6.0與MS BizTalk Server系統開發與維護。客戶為國內電子業十大股票上市公司。
(5)任職於國內某資通大廠(全球資訊業百大公司),負責軟體技術規劃與系統整合。
(6)2008/4/1~2017/7/1榮獲MVP(微軟最有價值專家),專長ASP.NET。
(7)2010~2012年台中市電腦公會辦理 行政院勞委會職訓局 產業人才投資計畫,擔任ASP.NET專任講師。2015年起投入線上教學(遠距教學)並提供ASP.NET(WebForm與MVC)教學影片,讓學員線上學習。
著作:
(1)2001至今已出版十多本電腦書籍。網站提供許多PDF電子書,免費分享Linux與ASP.NET知識。
(2)國內第一本推出Mandrake Linux,以及優先採用Visual Studio開發ASP.NET(1.x版)的電腦書作者。兩者均開創了台灣電腦書的新領域,並帶動新風潮。台灣少數自.NET 1.0~ 4.8版均有出書的資深作者,並發行簡體中文版至中國大陸。
(3)台灣第一本.NET 4.0與4.5的中文電腦書作者,4.0版創記錄熱銷八刷。
周棟祥 博士
現職:國立高雄科技大學 資訊管理學系副教授兼教育事業暨產品推廣處處長
學歷:國立政治大學 資訊管理博士(2004/09~2008/02)
國立中正大學 資訊管理碩士(1999/09~2001/07)
研習:德國阿亨工業大學(RWTH AACHEN University)
新加坡國立大學(National University of Singapore)
新加坡南洋理工大學(Nanyang Technological University)
經歷:企業整合中心主任
研究發展處副研發長
區域產學合作中心主任
研究發展處推廣教育中心主任
研究發展處產學組組長
區域產學合作中心執行長
研究發展處推廣服務及教育組組長
管理學院院長特別助理
中華電信助理研究員
專長領域:服務科學、客戶關係管理、電信營運管理、電子商務、行動服務、工業4.0、物聯網與大數據應用
吳進魯
學歷:國立屏東科技大學 資訊管理研究所碩士
經歷:
(1)1998~2000年為國立屏東科技大學計算機中心、屏東縣教育局舉辦的多場資訊教育訓練擔任講師(授課時數超過250小時)。
(2)國防役四年。資策會各式網站系統開發(七年經驗)、電信產業分析與Internet指標研究工作。
(3)資策會 教育訓練中心(南區)專任講師(專長Web程式設計)。負責600小時之就業輔導班。
(4)星動計畫B2Bi(XML資料交換,採用RosettaNet標準),VB 6.0與MS BizTalk Server系統開發與維護。客戶為國內電子業十大股票上市公司。
(5)任職於國內某資通大廠(全球資訊業百大公司),負責軟體技術規劃與系統整合。
(6)2008/4/1~2017/7/1榮獲MVP(微軟最有價值專家),專長ASP.NET。
(7)2010~2012年台中市電腦公會辦理 行政院勞委會職訓局 產業人才投資計畫,擔任ASP.NET專任講師。2015年起投入線上教學(遠距教學)並提供ASP.NET(WebForm與MVC)教學影片,讓學員線上學習。
著作:
(1)2001至今已出版十多本電腦書籍。網站提供許多PDF電子書,免費分享Linux與ASP.NET知識。
(2)國內第一本推出Mandrake Linux,以及優先採用Visual Studio開發ASP.NET(1.x版)的電腦書作者。兩者均開創了台灣電腦書的新領域,並帶動新風潮。台灣少數自.NET 1.0~ 4.8版均有出書的資深作者,並發行簡體中文版至中國大陸。
(3)台灣第一本.NET 4.0與4.5的中文電腦書作者,4.0版創記錄熱銷八刷。
內容目錄
目錄
|CHAPTER 00| 本書導讀
0-1 學習順序,三大重點
0-2 ADO.NET四大經典範本
0-3 資料庫範例的安裝與YouTube教學影片
0-4 參考資料與書籍
Part I ADO.NET基礎入門篇
|CHAPTER 01| 程式與資料庫互動的四大步驟
1-1 ASP.NET與ADO.NET的簡單程式(DataReader)
1-2 JSP連結資料庫的四大步驟
1-3 PHP連結資料庫的四大步驟
1-4 深入瞭解四大步驟
1-5 連結字串(ConnectionString)不需死背
1-6 新的Microsoft.Data.SqlClient命名空間(.NET Core)
|CHAPTER 02| Connection資料庫連結
2-1 Connection物件
2-2 ConnectionString,資料庫的連結字串
2-3 ConnectionString關鍵字數值的有效名稱
2-4 SqlDataSource產生連結字串(圖解Visual Studio精靈)
2-5 Web.Config檔案的連結字串
2-6 SqlDataSource資料庫連結字串for Oracle
2-7 SqlDataSource資料庫連結字串for Access
2-8 SqlDataSource資料庫連結字串for ODBC
2-9 .Open()方法
2-10 .Close()方法
2-11 .Dispose()方法
2-12 .CreateCommand()方法
2-13 .GetSchema()方法
2-14 多重結果作用集(MARS,MultipleActiveResultSets)
2-15 變更與取得資料庫
2-16 連結字串的安全性
2-17 連結字串與資料庫交易(Transaction)
|CHAPTER 03| SQL Server連結共用(Connection Pooling)
3-1 集區(Pool)的建立及指派
3-2 Case Study:ClientConnectionId屬性
3-3 從集區加入連結
3-4 從集區移除連結
3-5 清除連結集區
|CHAPTER 04| Azure雲端資料庫、SQL Server的LocalDb、Oracle或MySQL資料庫
4-1 連結雲端資料庫(Microsoft Azure)
4-2 SQL Server的LocalDB與範例安裝
4-3 Oracle甲骨文資料庫
4-4 SqlDataSource與Oracle
4-5 MySQL資料庫
4-6 SqlDataSource控制項搭配MySQL
Part II DataReader篇
|CHAPTER 05| SqlDataReader類別與常用方法,程式入門
5-1 DataReader觀念解析
5-2 DataReader的方法
5-3 .Read()方法
5-4 入門練習(I):實作DataReader與範例
5-5 Snippet,Visual Studio輔助您撰寫「程式碼片段」
5-6 入門練習(II):Inline Code,程式與畫面在同一檔案
5-7 先關閉Command再關閉DataReader
5-8 DataReader優缺點—快速又省資源、但無法分頁
5-9 使用try...catch...finally區塊
5-10 使用using...區塊,自動關閉資源
5-11 巢狀的(多個)using區塊
5-12 SQL指令的預存程序(Stored Procedure)
5-13 .NextResult()方法,傳回多個結果
5-14 多重結果作用集(MARS)與網路留言版(關聯式資料表)
5-15 Case Study:計算食物卡路里,.ExecuteScalar()方法
5-16 Case Study:計算食物的卡路里(可複選、加總)
|CHAPTER 06| DataReader常用屬性
6-1 DataReader的屬性
6-2 Depth屬性
6-3 FieldCount屬性
6-4 HasRows屬性
6-5 RecordsAffected屬性,資料異動
6-6 .GetName()方法,取得欄位名稱
6-7 .GetValue()方法,個別擷取欄位的內容、值
6-8 .GetValues()方法,填入物件陣列,有效擷取「所有」欄位
6-9 .GetOrdinal()方法,為了效能只能呼叫一次
6-10 .IsDBNull()方法,避免空的欄位值
|CHAPTER 07| SqlCommand類別
7-1 SqlCommand建構函式與初始屬性值
7-2 SqlCommand與DataReader基礎範本
7-3 SqlCommand常用方法一覽表
7-4 .ExecuteReader()方法,查詢資料列(記錄)
7-5 .ExecuteReader(CommandBehavior)方法,查詢資料列(記錄)
7-6 .ExecuteNonQuery()方法,回寫資料庫(新增、刪除、修改)
7-7 例外狀況
7-8 SqlCommand的屬性
7-9 參數(Parameters)與SqlParameter Collection,避免SQL Injection攻擊
Part III DataSet篇
|CHAPTER 08| DataSet(資料集)+ DataAdapter(資料配接器)
8-1 Web網頁與Windows程式,使用DataSet的差異
8-2 何時該用DataReader或DataSet?
8-3 DataSet是一種「離線」的資料存取
8-4 DataSet的流程與範例程式
8-5 SQL Server連結字串(ConnectionString)
8-6 DataTable與DataRow
8-7 使用using...區塊
8-8 Case Study:將DataSet轉成XML檔案(I)
8-9 Case Study:將DataSet轉成XML檔案(II)
8-10 Relations屬性
8-11 總複習,DataAdapter的.Fill()與.Update()方法
|CHAPTER 09| DataTable與DataView
9-1 DataTable,存放在記憶體中關聯式資料的「資料表」
9-2 實作DataTable與範例
9-3 將DataColumn(資料行、欄位)加入DataTable
9-4 將DataRow(資料列、記錄)加入DataTable
9-5 多個DataAdapter將不同資料來源加入DataSet
9-6 DataView,自訂資料檢視
9-7 實作DataView與範例
9-8 尋找資料列,DataView的.Find()方法和.FindRows()方法
|CHAPTER 10| DataAdapter與SqlDataAdapter類別
10-1 簡介DataAdapter(資料配接器)物件 &
|CHAPTER 00| 本書導讀
0-1 學習順序,三大重點
0-2 ADO.NET四大經典範本
0-3 資料庫範例的安裝與YouTube教學影片
0-4 參考資料與書籍
Part I ADO.NET基礎入門篇
|CHAPTER 01| 程式與資料庫互動的四大步驟
1-1 ASP.NET與ADO.NET的簡單程式(DataReader)
1-2 JSP連結資料庫的四大步驟
1-3 PHP連結資料庫的四大步驟
1-4 深入瞭解四大步驟
1-5 連結字串(ConnectionString)不需死背
1-6 新的Microsoft.Data.SqlClient命名空間(.NET Core)
|CHAPTER 02| Connection資料庫連結
2-1 Connection物件
2-2 ConnectionString,資料庫的連結字串
2-3 ConnectionString關鍵字數值的有效名稱
2-4 SqlDataSource產生連結字串(圖解Visual Studio精靈)
2-5 Web.Config檔案的連結字串
2-6 SqlDataSource資料庫連結字串for Oracle
2-7 SqlDataSource資料庫連結字串for Access
2-8 SqlDataSource資料庫連結字串for ODBC
2-9 .Open()方法
2-10 .Close()方法
2-11 .Dispose()方法
2-12 .CreateCommand()方法
2-13 .GetSchema()方法
2-14 多重結果作用集(MARS,MultipleActiveResultSets)
2-15 變更與取得資料庫
2-16 連結字串的安全性
2-17 連結字串與資料庫交易(Transaction)
|CHAPTER 03| SQL Server連結共用(Connection Pooling)
3-1 集區(Pool)的建立及指派
3-2 Case Study:ClientConnectionId屬性
3-3 從集區加入連結
3-4 從集區移除連結
3-5 清除連結集區
|CHAPTER 04| Azure雲端資料庫、SQL Server的LocalDb、Oracle或MySQL資料庫
4-1 連結雲端資料庫(Microsoft Azure)
4-2 SQL Server的LocalDB與範例安裝
4-3 Oracle甲骨文資料庫
4-4 SqlDataSource與Oracle
4-5 MySQL資料庫
4-6 SqlDataSource控制項搭配MySQL
Part II DataReader篇
|CHAPTER 05| SqlDataReader類別與常用方法,程式入門
5-1 DataReader觀念解析
5-2 DataReader的方法
5-3 .Read()方法
5-4 入門練習(I):實作DataReader與範例
5-5 Snippet,Visual Studio輔助您撰寫「程式碼片段」
5-6 入門練習(II):Inline Code,程式與畫面在同一檔案
5-7 先關閉Command再關閉DataReader
5-8 DataReader優缺點—快速又省資源、但無法分頁
5-9 使用try...catch...finally區塊
5-10 使用using...區塊,自動關閉資源
5-11 巢狀的(多個)using區塊
5-12 SQL指令的預存程序(Stored Procedure)
5-13 .NextResult()方法,傳回多個結果
5-14 多重結果作用集(MARS)與網路留言版(關聯式資料表)
5-15 Case Study:計算食物卡路里,.ExecuteScalar()方法
5-16 Case Study:計算食物的卡路里(可複選、加總)
|CHAPTER 06| DataReader常用屬性
6-1 DataReader的屬性
6-2 Depth屬性
6-3 FieldCount屬性
6-4 HasRows屬性
6-5 RecordsAffected屬性,資料異動
6-6 .GetName()方法,取得欄位名稱
6-7 .GetValue()方法,個別擷取欄位的內容、值
6-8 .GetValues()方法,填入物件陣列,有效擷取「所有」欄位
6-9 .GetOrdinal()方法,為了效能只能呼叫一次
6-10 .IsDBNull()方法,避免空的欄位值
|CHAPTER 07| SqlCommand類別
7-1 SqlCommand建構函式與初始屬性值
7-2 SqlCommand與DataReader基礎範本
7-3 SqlCommand常用方法一覽表
7-4 .ExecuteReader()方法,查詢資料列(記錄)
7-5 .ExecuteReader(CommandBehavior)方法,查詢資料列(記錄)
7-6 .ExecuteNonQuery()方法,回寫資料庫(新增、刪除、修改)
7-7 例外狀況
7-8 SqlCommand的屬性
7-9 參數(Parameters)與SqlParameter Collection,避免SQL Injection攻擊
Part III DataSet篇
|CHAPTER 08| DataSet(資料集)+ DataAdapter(資料配接器)
8-1 Web網頁與Windows程式,使用DataSet的差異
8-2 何時該用DataReader或DataSet?
8-3 DataSet是一種「離線」的資料存取
8-4 DataSet的流程與範例程式
8-5 SQL Server連結字串(ConnectionString)
8-6 DataTable與DataRow
8-7 使用using...區塊
8-8 Case Study:將DataSet轉成XML檔案(I)
8-9 Case Study:將DataSet轉成XML檔案(II)
8-10 Relations屬性
8-11 總複習,DataAdapter的.Fill()與.Update()方法
|CHAPTER 09| DataTable與DataView
9-1 DataTable,存放在記憶體中關聯式資料的「資料表」
9-2 實作DataTable與範例
9-3 將DataColumn(資料行、欄位)加入DataTable
9-4 將DataRow(資料列、記錄)加入DataTable
9-5 多個DataAdapter將不同資料來源加入DataSet
9-6 DataView,自訂資料檢視
9-7 實作DataView與範例
9-8 尋找資料列,DataView的.Find()方法和.FindRows()方法
|CHAPTER 10| DataAdapter與SqlDataAdapter類別
10-1 簡介DataAdapter(資料配接器)物件 &