[ASP.NET Core MVC]第一天 免費課程 3小時完整試聽 https://youtu.be/TSmwpT-Bx4I
完整課程 超過 120小時"(外面買不到) 已開始販售,請來信詢問(一定有優惠!) mis2000lab (at) yahoo.com.tw; school (at) mis2000lab.net。謝謝您
課程列表與大綱,請看 mis2000lab.pixnet.net/blog/post/35172535
9vs1 . com網站的三天入門課程 9vs1.com/go/?i=192277ff2276
這位學員學了半年,公司幫他加薪150%(真人真事) www.dotblogs.com.tw/mis2000lab/2020/09/23/ASPnet_MVC_online_20200923
學員感言與推薦 - www.dotblogs.com.tw/mis2000lab/2023/01/30/mis2000lab_MVC_onlineLearning2023
這是備份網站。主網站位於http://www.dotblogs.com.tw/mis2000lab/
MIS2000 Lab's ASP.NET & Linux (Trad. Chinese 正體中文;Big5)。這個網站,是我們(MIS2000 Lab.資訊工作室)多年教學的實際心得與上課範例,有ASP.NET程式設計,也有Linux的相關文件。
編輯。
您也可以直接參觀主網站
MIS2000 Lab. is MVP 2008-2017/7/1 for ASP/ASP.NET.
2023年6月17日 星期六
2018年4月16日 星期一
[習題]上集 Ch 14-4 撰寫ADO.NET DataReader的分頁程式#3(搭配SQL 2012指令 OFFSET...FETCH)
摘要:[習題]上集 Ch 14-4 撰寫ADO.NET DataReader的分頁程式#3(搭配SQL 2012指令 OFFSET...FETCH)
速度比起 ROW_Number差不多,
但比較起來,新的寫法比 ROW_Number省資源

如果您是撰寫 ASP.NET MVC,分頁的原理其實雷同。
請參閱 http://mis2000lab.pixnet.net/blog/post/35057473
或是 https://mis2000lab.blogspot.tw/2018/04/aspnet-mvcskip-take.html
http://mis2000lab.pixnet.net/blog/post/33836306
速度比起 ROW_Number差不多,
但比較起來,新的寫法比 ROW_Number省資源

上一篇文章,也是透過SQL指令來進行資料分頁
遠比在「HTML畫面上」寫程式分頁快速多了!!
今天看書時,發現一個新的指令
SQL 2012起,多了 OFFSET...FETCH的指令來輔助 Order By,也可以做資料分頁喔。
教學影片 https://www.youtube.com/watch?v=37q5qez6cbU
教學影片 https://www.youtube.com/watch?v=37q5qez6cbU
如果您是撰寫 ASP.NET MVC,分頁的原理其實雷同。
請參閱 http://mis2000lab.pixnet.net/blog/post/35057473
或是 https://mis2000lab.blogspot.tw/2018/04/aspnet-mvcskip-take.html
當然,您跟我一樣,花十分鐘看一下SQL Server大師 --德瑞克的網站就會了
啊!!!!!!!!德瑞克大師的功力灌頂之後,
我馬上把我的分頁程式改成這樣
只花了兩分鐘!!!!!(因為我資質弩鈍,花了一點時間練習)
請打開書本,或是參閱以前的範例
把SQL指令改成這樣
//========================
//== 組合SQL指令 =============
SqlDataReader dr = null;
//== ADO.NET 參數的寫法 ==
String SqlStr = "Select test_time, id, title, summary from test Order By id
OFFSET @Page1 ROWS FETCH NEXT @Page2 ROWS ONLY";
SqlCommand cmd1 = new SqlCommand(SqlStr, Conn);
cmd1.Parameters.AddWithValue("@Page1", NowPageCount);
cmd1.Parameters.AddWithValue("@Page2", PageSize);
dr = cmd1.ExecuteReader();
//== 第三,自由發揮 ======================
while (dr.Read())
{
haveRec = true; // 後續省略......
完成了!YA!!
如果我的說法沒錯的話,這是我「個人」整理出來的重點:
OFFSET X ROWS 代表你忽略了前面幾筆記錄(也就是從這裡 開始讀取,從頭開始算起,第一筆的編號請用「零」代表 )
FETCH NEXT Y ROWS ONLY 代表你從「第幾列」向後 讀取 (我 只要 這幾列的記錄即可!)。
根據 SQL Server大師 --德瑞克 文章裡面的說法
-- 速度比起 ROW_Number差不多,
-- 但比較起來,新的寫法比 ROW_Number省資源
沒錯!您還不趕緊去練功.... SQL Server 2012 :分頁處理:認識 OFFSET 和 FETCH 子句
這裡是微軟 msdn網站的說明(中文) -- http://technet.microsoft.com/zh-tw/library/gg699618(v=sql.110).aspx
使用 OFFSET - FETCH 的限制
- ORDER BY 會強制使用 OFFSET 和 FETCH 子句。
- OFFSET 子句則強制搭配 FETCH 使用。您絕對不可以使用 ORDER BY … FETCH。
- TOP 不可以在相同查詢運算式中與 OFFSET 和 FETCH 結合。
- OFFSET/FETCH 資料列計數運算式可以是任何將傳回整數值的算術、常數或參數運算式。資料列計數運算式不支援純量子查詢。
下列範例示範 OFFSET-FETCH 子句搭配 ORDER BY 的使用方式。
範例 1:略過已排序之結果集的前 10 個資料列,並傳回其餘資料列。
SELECT * FROM [test] ORDER BY id OFFSET 10 ROWS;
範例 2:略過已排序之結果集的前 5 個資料列,並傳回接下來的 5 個資料列。
SELECT * FROM [test] ORDER BY id
OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY;
執行成果如下圖
如果您是撰寫 ASP.NET MVC,分頁的原理其實雷同。
請參閱 http://mis2000lab.pixnet.net/blog/post/35057473
或是 https://mis2000lab.blogspot.tw/2018/04/aspnet-mvcskip-take.html
或是 https://mis2000lab.blogspot.tw/2018/04/aspnet-mvcskip-take.html
相關文章:
本範例的修改版,搭配 jQuery特效:無限下拉的資料呈現 (另一種分頁效果) - jQuery + Web Service + Repeater控制項
標籤:
分頁,
ADO.NET,
ASP.NET WebForm,
asp.net專題實務,
DataReader,
Paging,
Visual Studio,
VS 2015,
VS 2017,
VS2013,
Web Form
2017年1月9日 星期一
19/30 ADO.NET與資料庫 #2 -- ADO.NET程式 DataReader為何不能分頁?
從上一篇文章起( http://mis2000lab.blogspot.com/2017/01/1830-adonet-1-adonet.html)
我們開始自己寫程式 作資料存取
DataSet / DataReader兩者的差異,可以參閱這篇文章
** 初探ADO.NET #2,DataReader 與 DataSet(資料集)**
https://dotblogs.com.tw/mis2000lab/archive/2008/08/15/4919.aspx
** 初探ADO.NET #2,DataReader 與 DataSet(資料集)**
https://dotblogs.com.tw/mis2000lab/archive/2008/08/15/4919.aspx
ADO.NET程式 DataReader為何不能分頁?
這句話是什麼意思?
這句話是什麼意思?
「從資料來源讀取「順向」且「唯讀」的資料流」,有範例示範一下,為我說明嗎?
後續的範例也會跟各位介紹 「DataReader + 自己寫SQL指令做分頁」
- 當我們要查詢數據時,如果數據量太大,要自己寫SQL指令做 "分頁" 呈現。
您在Google查到一千筆數據,Google也是分成一頁一頁的呈現吧? - 畫面的呈現,可以透過GridView、Repeater(這東西 "預設"不提供分頁功能)來呈現,但分頁功能則是我們自己寫的。或是透過 DataReader來呈現每一頁的數據。
這些範例在後續都會為您介紹。
順便也分享一篇文章。
如果您對於DataReader / DataSet想進一步瞭解,我收集了許多前輩的經驗談
如果您對於DataReader / DataSet想進一步瞭解,我收集了許多前輩的經驗談
[ADO.NET] Web Form為求快速,可使用 DataReader直接處理資料來源
https://dotblogs.com.tw/mis2000lab/2012/01/13/dataset_datareader_20120113
https://dotblogs.com.tw/mis2000lab/2012/01/13/dataset_datareader_20120113
下一篇文章,讓我們開始動手寫程式--
ADO.NET與資料庫 #3 -- 跨平台(Web + Windows)的程式與範例
ADO.NET與資料庫 #3 -- 跨平台(Web + Windows)的程式與範例
標籤:
分頁,
資料庫,
網頁,
網頁資料庫,
ADO.NET,
asp.net專題實務,
DataReader,
DataSet,
HTML網頁,
Paging
2016年12月27日 星期二
第一天 ADO.NET Samples -- DataReader v.s. DataSet與DataTable (用完就空了的 DataReader)
第一天 ADO.NET Samples -- DataReader v.s. DataSet與DataTable
(用完就空了的 DataReader) 本範例搭配 Youtube教學影片
(用完就空了的 DataReader) 本範例搭配 Youtube教學影片
相關的兩篇文章:
第一天 ADO.NET Samples -- DataSet(課程範例)& 圖解
初探ADO.NET #2,DataReader 與 DataSet(資料集)
本篇文章作為上課的補充教材
我們在上課的時候提到 DataReader 與 DataSet兩者的差異
也提醒各位其中的觀念與作法不同
強烈建議您看完這篇文章 與 裡面的超連結(相關文章):
[ADO.NET] Web Form為求快速,可使用 DataReader直接處理資料來源
底下範例本來是今天看書的讀書心得
講到 Single-Value DataBinding 與 Repeated-Values DataBinding
但是,我突然想用這些範例來 demo
DataReader 與DataSet兩者的異同,也很有趣。
早在 .NET 1.x版就有這東西了,詳見微軟官方網站 -- http://msdn.microsoft.com/en-us/library/aa713238(v=vs.71).aspx
事實上,大家都有使用過,只是沒注意這個「專有名詞」罷了
我的書本 "下集",ASP.NET專題實務(II) / 松崗出版
有一章專門講 DataBinding 與 DataBinding Expression(資料繫結運算式)
新的補充範例將會加入這章節,將來出新書會把這部分加入
YouTube教學影片 -- https://youtu.be/U_kHOTEFw2U
請看下面兩張圖片:
(1). 第一個範例,使用DataReader來做
為什麼三個清單控制項,只有第一個可以正常運作呢?
知道錯誤在哪裡?您就理解了 DataReader的原理與作法
(2). 後續兩個範例,不管是用 DataTable or DataSet來做,都是正常的。
這又是為什麼呢?
這個範例因為使用到 DataReader
剛好另一篇文章也有類似的成果,讓您參考
[ADO.NET] DataReader 與 CommandBehavior補充說明
觀念清楚,程式碼就簡單!
觀念清楚,Debug就輕鬆!
[給ASP.NET 初學者的話]不要練功練了三年,才發現自己必須「砍掉重練」!....學習ASP.NET之前,請先把自己杯中的水倒掉
[轉貼]GridView 72般絕技--作者:清清月兒。 兼論:我 (MIS2000 Lab.)學習.NET的心路過程
[給初學者的話] 如何選電腦補習班?? #1....我的回憶 (最昂貴的是「師資」成本)
[自我評量表] ASP.NET 我該上什麼課?入門、或是進階?...以「ASP.NET專題實務」本書為例
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
寫信給我-- mis2000lab (at) yahoo.com.台灣 或是 school (at) mis2000lab.net
................ facebook社團 https://www.facebook.com/mis2000lab ......................
................ Google+ https://plus.google.com/100202398389206570368/posts ........
................ YouTube (ASP.NET) 線上教學影片 http://goo.gl/rGLocQ
標籤:
第一天,
ADO.NET,
ASP.NET,
asp.net專題實務,
DataReader,
DataSet,
DataTable,
SqlCommand,
SqlDataAdapter,
Web Form
2016年12月21日 星期三
[YouTube影片] 如果程式「會動」就好,學那麼多屬性與方法幹嘛?
[YouTube影片] 如果程式「會動」就好,學那麼多屬性與方法幹嘛?
如果「程式會動就好」,學那麼多屬性與方法幹嘛?
那麼原廠提供這些屬性與方法,是窮極無聊嗎?還是原廠提供更多選擇,只是自己不會用?
提供 YouTube教學影片
初學者往往只要拿到「範本」、「程式碼」
改得動,會跑(run)、能執行就好。
下次繼續複製貼上,微調一下又能用,豈不是方便、省時?
那我就覺得很奇怪?
既然一個會動的方法或屬性就能打通關,原廠提供那麼多文件講解各種屬性、方法、事件
他們(原廠)是不是吃飽太閒?才寫出這麼多東西給我用?
還是........
我根本只會這一百零一招,其他東西,我不會用也看不懂?也不會變化?
以下我用同一個範例,介紹 DataReader / SqlCommand :
(1). HasRows屬性
(2). CommandBehavior列舉類型(原廠MSDN說明)
(3). 參數(避免 資料隱碼攻擊、SQL Injection攻擊)
YouTube影片 -- https://youtu.be/mRIWGsUS8Cw
以前,看不懂MSDN原廠文件,覺得那都是「火星文」
可能是自己能力還不夠
可能是沒有人帶領、沒有「實用的範例」可以解釋(所以無法引發興趣)....甚至原廠文件沒有提供範例 Orz
可能是屬性、方法太多了.....多到根本學不完,只好放棄 (那今天我幫您整理出「最常用」、「次常用」的,您應該很容易上手吧!)
這就是我想寫這本書的原因
只要有人帶你走一段路,提供「實用範例」,先整理出「常用的」東西讓您上手....
您就會知道原廠MSDN文件之好用 與 博大精深
久了就自己看得懂,也養成習慣(自己去看、自修)
========================================================
新書上市,團購優惠價。現貨供應,不需等待。直接來信吧!
https://dotblogs.com.tw/mis2000lab/2016/07/25/dotnet_access_adonet_book_2016
========================================================
![]() |
深入探索 .NET資料存取:ADO.NET + SqlDataSource+ LINQ
MIS2000 Lab. / 周棟祥博士 / 吳進魯
出版日期: 2016-08-03
出版商: 松崗 定價:$820
頁數: 840
ISBN: 9572245686 ISBN-13: 9789572245682 |
本書提供 VB & C# 雙語法範例 **由此下載**
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

寫信給我-- mis2000lab (at) yahoo.com.台灣 或是 school (at) mis2000lab.net
................ facebook社團 https://www.facebook.com/mis2000lab ......................
................ Google+ https://plus.google.com/100202398389206570368/posts ........
................ YouTube (ASP.NET) 線上教學影片 http://goo.gl/rGLocQ
ASP.NET Core & ADO.NET 入門 #1 -- 資料庫連結(SqlConnection)
ASP.NET Core & ADO.NET 入門 #1 -- 資料庫連結(SqlConnection)
ASP.NET Core & ADO.NET 入門 #1,最簡單的操作步驟
(1). SqlConnection連結字串
本範例提供YouTube教學影片 + PDF電子書下載
*** 行前準備 ***
首先,您可以先瞭解 開放原始碼(開源)的 ASP.NET Core(以前名為 ASP.NET 5)
[中文翻譯] ASP.NET 5 概觀 (ASP.NET 5 Overview,原作 Tom FitzMacken 2014/11/12)
https://dotblogs.com.tw/mis2000lab/2014/12/03/aspnet_5_overview_webform_46
https://dotblogs.com.tw/mis2000lab/2014/12/03/aspnet_5_overview_webform_46
[中文翻譯] ASP.NET 5 簡介(Introducing ASP.NET 5,原作ScottGu 2015/2/23)
https://dotblogs.com.tw/mis2000lab/2015/03/11/aspnet_5_introduce_scottgu_20150223
https://dotblogs.com.tw/mis2000lab/2015/03/11/aspnet_5_introduce_scottgu_20150223
接著,當您打開 VS 2015 (Update 3)的時候,可能要先安裝這個套件 for VS 2015。這個 Tool 還是 Preview版
系統會自動偵測,並詢問您是否安裝?
以下的範例,是從 Wrox出版的這本書而來,您可以參閱此書的 第三十七章(原廠網站有範例下載)
Professional C# 6 and .NET Core 1.0![]()
Christian Nagel
ISBN: 978-1-119-09660-3
1536 pages
April 2016......註解:提醒您,這本書以為 Windows Form 主軸,並非 網頁範例為主
|
==========================================================================
YouTube教學影片 -- https://youtu.be/1UaO8C2MnJQ
*** 開始動作 ***
(1). VS 2015 新建一個 ASP.NET Core 的 Web專案。
下一步,我選擇了「空」專案
(2). 這是ASP.NET Core 「空」專案的架構
很抱歉,關於這個架構的檔案、目錄,我暫時沒有研究。如果您想進一步瞭解,請參與網路上的其他文章
(3). 預設的狀態下,您就可以編譯這個專案,而且看見結果(執行後,網頁出現 Hello World 字樣)
對照起來,原來是在 Startup.cs這個檔案的最後下方,就有 Hello World 字樣
(4). 我們加入熟悉的 ADO.NET程式碼(以 DataReader + SqlConnection / SqlCommand為例)
如果您不熟悉,可以參閱以前的文章與範例 --
這裡的變化比較大。
以前撰寫程式時,如果缺乏 NameSpace,您可能要在程式碼「最上方」自己動手寫進來
甚至.....您要使用「加入參考」把這個DLL檔(二進位檔案)加入您的網站或專案
但是在 ASP.NET Core,我們可以有下面兩種作法。任選其一即可。
4-1. 透過 Visual Studio來幫忙,自己會幫您完成。詳見下面圖解。
Visual Studio會自動幫您加上 NameSpace,也會在 project.json設定檔裡面,加入必要的元件。
4-2. 當然,如果您是死硬派!硬漢!堅持要動手寫!
在 project.json設定檔裡面,也可以透過智慧選字(IntelliSense),會自動跳字讓您填寫。
(5). 程式碼大致如下:
//== 方法一 ==
string connectionString = @"server=.\sqlexpress;integrated security=SSPI;database=我的資料庫名稱";
var conn = new SqlConnection(connectionString);
conn.Open();
conn.Open();
// Do something useful
await context.Response.WriteAsync("
資料庫連結成功");
await context.Response.WriteAsync("
資料庫連結成功");
conn.Close();
//== 當然,我們可以把資料庫的連結字串,寫在設定檔裡面。例如 appsettings.json設定檔,下一篇文章 為您解說。
//{
// "ConnectionStrings": {
// "DefaultConnection": "Server=.\\sqlexpress;Database=我的資料庫名稱;Trusted_Connection=True;MultipleActiveResultSets=true"
// }
//}
//{
// "ConnectionStrings": {
// "DefaultConnection": "Server=.\\sqlexpress;Database=我的資料庫名稱;Trusted_Connection=True;MultipleActiveResultSets=true"
// }
//}
==========================================================================
Q : ADO.NET怎麼只剩下 DataReader了?以前慣用的 DataSet呢?
詳見這篇文章的說明 (2016/2/10發表) https://blogs.msdn.microsoft.com/dotnet/2016/02/10/porting-to-net-core/
System.Data. While the base layer is already part of .NET Core, i.e. the provider model and SQL client, some features are currently not available, such as schema support and DataTable/DataSet.
System.Transactions. While ADO.NET supports transactions, there is no support for distributed transactions, which includes the notion of ambient transactions and enlistment. (您可以參閱我這本書 -- 深入探索 .NET資料存取:ADO.NET + SqlDataSource+ LINQ (松崗),有討論 System.Transaction)

System.Transactions. While ADO.NET supports transactions, there is no support for distributed transactions, which includes the notion of ambient transactions and enlistment. (您可以參閱我這本書 -- 深入探索 .NET資料存取:ADO.NET + SqlDataSource+ LINQ (松崗),有討論 System.Transaction)

System.Net.Mail. There is currently no support for sending emails from .NET Core using these APIs.
目前 Core 1.0 不支援,不代表以後不支援。所以也不用太絕望....等等看吧......
下一篇文章:
ASP.NET Core & ADO.NET 入門 #2 -- 讀取appsettings.json設定檔與參數的寫法(SqlCommand)
http://mis2000lab.blogspot.tw/2016/12/aspnet-core-adonet-2.html
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
寫信給我-- mis2000lab (at) yahoo.com.台灣 或是 school (at) mis2000lab.net
................ facebook社團 https://www.facebook.com/mis2000lab ......................
................ Google+ https://plus.google.com/100202398389206570368/posts ........
................ YouTube (ASP.NET) 線上教學影片 http://goo.gl/rGLocQ
訂閱:
文章 (Atom)











