C50108
  • 2019/0801/轉職成功路途開始
  • 自學心得與此網站使用方式
  • 行事曆&課程大綱
  • 2019/0224/自我檢視
  • 雜記
    • 2019/0103/雜記
    • 2019/0410/作品集建構
    • 2019/0429/職訓局書單
    • 2019/0317/自我檢視
    • 2019/0316/陪玄松去高車討論&環境圖流程圖大神們line討論
    • 2019/0305/Gitbook使用方法
  • 2018/10XX/轉職心路歷程
  • 職訓局里程碑
    • 201901
      • 2019/0103/行動商務系統設計與開發,職訓局報到
      • 2019/0104/正式開課日&行動商務課程簡介
      • 2019/0108/資料庫理論/Access&WEB開發簡介
      • 2019/0109/資料庫資料型態屬性&HTMLtag
      • 2019/0110/計概基礎概念
      • 2019/0111/HTML表格table&form表單_post/get&iframe
      • 2019/0114/計&網概概念&網路層概念
      • 2019/0115/資料庫Access運算值&CSS簡介&在職班補充
      • 2019/0116/Access比較/邏輯運算&CSS_在職班補充+選擇器+Box model
      • 2019/0117/資訊系統架構&網路層
      • 2019/0118/資料庫正規化
      • 2019/0121/計概IT分工&資料庫正規化
      • 2019/0122/網路層&CSS父子容器切版
      • 2019/0123/Access資料庫關聯&CSS position&偵錯
      • 2019/0124/C#宣告、指定運算子
      • 2019/0125/VM虛擬機_基礎介紹
      • 2019/0128/VM虛擬機架設_虛擬網卡設定&伺服器權限設置
      • 2019/0129/Wireshark查詢網路層&資料庫物件導向
      • 2019/0130/ERmod雞爪圖&C#if、for時間複雜度
      • 2019/0131/C#流程控制&變數型別
    • 201902
      • 2019/0201/系統分析與設計_資料庫ERmod&c#Homework
      • 2019/0211/ASP.NET_Webforms&物件命名空間
      • 2019/0212/定址&網路遮罩
      • 2019/0213/SQLSeverM.S.介紹&AspWebforms表單控制項
      • 2019/0214/網概乙太網路&網路安全
      • 2019/0215/Pre Javascript 基礎 & 在職班補充
      • 2019/0218/TSQL基本指令&ASP.net左右置換表格/驗證傳值
      • 2019/0219/Javascript終極密碼&musicplay&asp.net驗證器
      • 2019/0220/SS基本語法&網概line機器人
      • 2019/0221/前端Javascript musicplay、內聚力耦合率
      • 2019/0222/前端Javascript musicplay、內聚力耦合率&伺服器權限
      • 2019/0223/SqlServerHomework&第一次專案報告
      • 2019/0225/SS合併查詢&ASP.NET驗證器
      • 2019/0226/伺服器ntfs安全性權限/共用權限
      • 2019/0227/Javascript_music_play_end&ASP.net串聯SQL(datasource就是拿來串SQLServer的)
    • 201903
      • 2019/0304/SS集合運算/子查詢/exists&asp.net GridView 事件 OnRowDataBound
      • 2019/0305/SS查詢式end&ASP.NET_Gridview_自訂樣式分頁
      • 2019/0306/Javascript musicplay_really_end
      • 2019/0307/前端HTML5鑲嵌字型&伺服器網域概念
      • 2019/0308/Android Studio_基礎概念&開發環境建置
      • 2019/0311/胡中興 工業4.0講習
      • 2019/0312/安卓系統_開發基礎介紹
      • 2019/0313/安卓工作室_基礎/布局內元件
      • 2019/0314/Asp.net鏈結資料庫-查詢
      • 2019/0315/SQS DML&第二次專案報告
      • 2019/0318/SQL DDL & 伺服器 自學基礎
      • 2019/0319/Android Studio_布局內元件&佈局規劃元件
      • 2019/0320/SQL檢視表&tsql基礎&Asp.net_Gridview
      • 2019/0321/TSQL&TDM&ASP.NET_Datalist
      • 2019/0322/DOM&JQ基礎&系統分析設計PPT&在職班補充
      • 2019/0325/TMD&Asp.net上傳圖片/產生QRCode
      • 2019/0326/SQLServer_預存程序+函數&Asp.net_Webforms半自動鏈結資料庫與自動化更新
      • 2019/0327/安卓工作室_佈局規劃元件
      • 2019/0328/jQuery選擇器應用&Ajax導讀+應用&asp.net串sserver_註冊帳號功能
      • 2019/0329/ADDS伺服器架設&第三次專題報告
    • 201904
      • 2019/0401/SQL觸發程序&Asp.net自動寄信&認證信
      • 2019/0402/前端作業四-jQ應用轉換樣式&ASP.NET_FormView控制項-會員資料維護實例
      • 2019/0403/JQ事件動畫&股市&Usecase
      • 2019/0408/安卓工作室_元件/布局基本end
      • 2019/0409/安卓工作室-物件導向事件驅動實作+Homework1&2
      • 2019/0410/上午小組討論-作品集自習&Visual studio webform+MVC範本
      • 2019/0411/安卓工作室-UI觸發委派函式與控制物件
      • 2019/0412/JQ動畫實做(寶可夢遊戲開場)&第四次專題報告
      • 2019/0415/前端JQ-Ajax+JSON&後端ADO建置、主板頁面概念控制項、Bootstrap演示
      • 2019/0416/安卓工作室UI控件案例結束、IDE Eclipse_Java物件導向基礎
      • 2019/0417/伺服器網域ADDNS&416LINE討論
      • 2019/0418/SQL指標、索引&Use cace
      • 2019/0419/主頁、Webform ADO.NET Entity Fromwork 增刪修實作&第五次專題報告
      • 2019/0423/Java基礎(型別/溢位/自動強制型別轉換/鑄造物件/串流/)&I/O物件用法(底層/較不底層)
      • 2019/0424/Bootstrap_RWD基礎/應用&Asp.Net_MVC實作增刪修(修待補)
      • 2019/0425/伺服器IIS安裝&資料匯入與管理
      • 2019/0426/Asp.Net_MVC增刪修實作(補修)&bootstrap – gridsystem– 網格系統&第六次專題報告&全國技能競賽網頁設計
      • 2019/0429/物件導向技術原理方法實作
      • 2019/0430/資料庫設計應用效能調教_SQL all end&ASP.NET_MVC_Controller單元_純C無V無M操作/簡單複雜繫結
    • 201905
      • 2019/0501/內部網站辨識&外部DNS域名/IP+自架DNS伺服器理解
      • 2019/0502/Java語言基礎、物件導向基礎
      • 2019/0503/Asp.net泛型處理常式驗證圖片應用&第七次專題報告Usecase
      • 2017/0506/Bs_FlexBox&Asp.Net_MVC_View+Razor@+Viewbag+helper
      • 2019/0507/Java 物件導向_類別+函式觀念&階段性作業三
      • 2019/0508/Asp.Net_MVC_Model_ADO.NET+Entityframework+LoginMember實作+MVC觀念
      • 2019/0509/Java物件導向(函式)_儲存型態+回傳值+多載+自制+例外處理+this參照+存取+複合
      • 20919/0510/第八次專題報告=功能DEMO
      • 2019/0514/Java_靜態類別+繼承特性
      • 2019/0515/RWD Utility+Card&MVC ViewModel+CRUD(RD)
      • 2019/0516/BS form&驗證+JQ驗證 & MVC_CRUD(CU)
      • 2019/0517/ASP.NET Webform介紹Master page 主頁 & Session 簡介 & 登入login驗證 & 隱碼攻擊injection & 工具箱程式碼片段使用
      • 2019/0520/繼承&存取權特性+java作業四+字符串格式化+多形+抽象類別
      • 2019/0521/抽象類別+介面
      • 2019/0522/Bootstrap Components 元件介紹 + MVC API 概念&實作
      • 2019/0523/IIS IP限制&ASP.NET部屬
      • 2019/0524/WebApi異質程式連線方式&第九次專題報告_循序圖
      • 2019/0528/Bootstrap Components 元件介紹 + MVC 登入驗證 + 商品加入購物車 實作
      • 2019/0529/ASP.NET_MVC購物車訂單功能完成+BootstrapComponents元件介紹
      • 2019/0530/原本是伺服器的課,但拿來做專題。
      • 2019/0531/ASP.NET_WebformAllView物件功能清單&ListView實作&第十次專案報告(完整循序圖)
    • 201906
      • 2019/0603/Bootstrap Components RWD End + ASP.NET_MVC Part2 PhotoSharing CodeFirst & Model 驗證
      • 2019/0604/ASP.NET_MVC Part2 PhotoSharing Controller & Filter & ADO.NET & View@RAZOR Helper
      • 2019/0605/Java介面實作&結束+安卓工作室(整合Layout與Java)Intent意圖&Bundle包裹
      • 2019/0606/第十一次專案報告功能demo+SingnaIR+伺服器作業+端午歌唱比賽
      • 2019/0609/黃大神傳授Visual_Studio&除錯技巧
      • 2019/0610/番外篇 Web Socket 即時連線& 就業前準備與技巧
      • 2019/0611/安卓工作室_(意圖+隱含意圖)資料傳遞+Android生命週期+硬體裝置與應用
      • 2019/0612/WebSockets Notification + MVC Part2 PhotoSharing PartialView & ADO.NET & EntitySQL & VMd
      • 2019/0613/MVC Part2 PhotoSharing ViewModel & ErrorHandle
      • 2019/0614/第十二次專案報告 功能Demo
      • 2019/0618/MVC Part2 PhotoSharing Route & Sitemap & _LayOut & AJAX
      • 2019/0618/RWD在職班_(Javascript_object-oriented programming)
      • 2019/0619/安卓工作室_(硬體裝置與應用)相機操作&GPS+階段性作業6+延伸 ( APP End )
      • 2019/0620/MVC補充C#MS SQL匯入CSV+上傳CSV存入MS SQL
      • 2019/0621/第十三次專案報告 功能Demo
    • 2019/0701/最終專案報告
    • 2019/0702/結訓與家人遊台東預計0708開始找工作自學筆記應該會等工作穩定後繼續開始
  • 自學里程碑
    • 201901
      • 2019/0107/DR
      • 2019/0108/UW
      • 2019/0103/Git
      • 2019/0103/CS
      • 2019/0115/Vscode
      • 2019/0116/JSON&AJAX
      • 2019/0122/卡內基
      • 2019/0126/MBTI
      • 2019/0131/PDP 外在 內在
    • 201902
      • 2019/0217/huli_half Developer
      • 2019/0219/SEO
      • 2019/0219/雪球速讀法
    • 201903
      • 2019/0304/asp、php、jsp、asp.net、net. Framework、asp.net core
      • 2019/0329/網站架站初嘗試
    • 201904
      • 2019/0415/Datatype-Explanation
      • 2019/0416/ASP.NET_Webform&Core&MVC(MVVM/MVP)
    • 201905
      • 2019/0613/開發職訓局共同專案時遇到的問題與解法
      • 2019/0514/ASP.NET SignalR
      • 2019/0514/JS擴展-JQ、React、Vue、Angular...
      • 2019/0514/Sass&Scss
      • 2019/0514/MVC結合Webform
      • 2019/0515/ASP.NET MVC_TempData/ViewData/ViewBag
      • 2019/0522/[自學筆記]海綿體啟蒙??
Powered by GitBook
On this page
  • 效能&反向運算
  • 反向子查詢 在in前+not即可
  • ANSI - SQL 用在任何資料庫都可以的
  • all 全部都滿足
  • some 或 any (t-sql) 只要其中滿足
  • order by 子句 offset x rows
  • fetch next 只顯示
  • null與資料轉換
  • CAST (值 AS 資料型態)
  • CONVERT 萬用轉型
  • CTE查詢
  • ASP.NET web froms GridView 較複雜自訂樣式分頁
  • protected void 功能名稱 ( 資料型態 物件名稱 ,EventArgs e )
  • 下拉式選單
  • TextBox 鑄造控制項
  • 優化 鑄造跟找尋ID不用用迴圈重複
  • 利用下拉式選單直接切換頁面 ( 事件一定發生在DROPDOWNLIST上面 )

Was this helpful?

  1. 職訓局里程碑
  2. 201903

2019/0305/SS查詢式end&ASP.NET_Gridview_自訂樣式分頁

效能&反向運算

集合 一筆資料或以上使用 in

in 查詢 一定要指定欄位 exists不用指定欄位但需要指定關聯

select * from 課程 where 課程編號 in 
(select 課程編號 from 班級 where 學號 in 
(select 學號 from 學生 where 姓名='周杰輪'))

子查詢效能較不好最好以 inner join 寫法 先將多表和為一表並關聯最後查詢一次

select 課程.* from 課程 
inner join 班級 on 課程.課程編號=班級.課程編號
inner join 學生 on 學生.學號=班級.學號
where 學生.姓名='周杰輪'

反向子查詢 在in前+not即可

select * from 課程 where 課程編號 not in 
(select 課程編號 from 班級 where 學號 in 
(select 學號 from 學生 where 姓名='周杰輪'))

不用子查詢但同樣結果 做差集 或 EXCEPT前+NOT

select 課程.* from 課程
except
select 課程.* from 課程 
inner join 班級 on 課程.課程編號=班級.課程編號
inner join 學生 on 學生.學號=班級.學號
where 學生.姓名='周杰輪

Not 效能較差會盡量避免 < 集合運算 < 直接查詢

ANSI - SQL 用在任何資料庫都可以的

sybase infoint

mysql

sqlserver t-sql

oracle pl sql

Select * from tbname

all 全部都滿足

select * from 員工 where 薪水>=all
(select 薪水 from 員工 where 城市='台北')

some 或 any (t-sql) 只要其中滿足

select * from 員工 where 薪水>=some
(select 薪水 from 員工 where 城市='台北')

select * from 員工 where 薪水>=any
(select 薪水 from 員工 where 城市='台北')

order by 子句 offset x rows

排序後空出x筆後查詢顯示

select 身份證字號,姓名,薪水
from 員工
order by 身份證字號
offset 3 rows

fetch next 只顯示

select 身份證字號,姓名,薪水
from 員工
order by 身份證字號
offset 3 rows
fetch next 2 rows only

null與資料轉換

is null 不是 = null

=' ' 空字串

函數ISNULL(欄位,函式)

ex. ISNULL(電話,'尚未填寫')

select * from 員工 where 電話 is null

select 身份證字號,姓名,ISNULL(電話,'尚未填寫'),薪水 from 員工

生日時間型態資料餵尚未填寫字串

資料轉換

CAST (值 AS 資料型態)

select 學號,姓名, isnull(cast(生日 as varchar),'尚未填寫') from 學生

select cast(生日 as varchar) from 學生

select cast(100 as varchar)

CONVERT 萬用轉型

CONVERT ( 資料型態 , 值 , 格式代號 )

select convert(varchar,生日,20)  from 學生
select 學號,姓名, isnull(convert(varchar,生日,20),'尚未填寫') from 學生

CTE查詢

ex.此人同時是員工也是教授

bl遞迴方式查詢

通常會合併表

暫存表 with

with 有名字的教授表
as
(select 教授.*, 員工.姓名
from 員工 inner join 教授
on 員工.身份證字號=教授.身份證字號)

select *
from 班級 
inner join 學生 on 班級.學號=學生.學號
inner join 課程 on 課程.課程編號=班級.課程編號
inner join 有名字的教授表 on 有名字的教授表.教授編號=班級.教授編號

--------

遞迴錨點

類似自身合併查詢

AS內為CTE內容

with 主管2
as
(
select 員工字號,姓名, 1 as 階層 from 主管 where 主管字號 is null
union all
select 主管.員工字號,主管.姓名, 階層+1 from 主管 inner join 主管2 on 主管.主管字號=主管2.員工字號
)
select * from 主管2
order by 階層

執行結束條件為 主管字號 = 員工字號 此人為主管

遞迴

從前有座山.山裡有座廟.廟裡有老和尚和小和尚.有天小和尚對老和尚說:師父師父說個故事給我聽吧.老和尚說:好.從前有座山.山裡有座廟.廟裡有老和尚和小和尚.有天小和尚對老和尚說:師父師父說個故事給我聽吧.老和尚說:好.從前有座山.山裡有座廟.廟裡有老和尚和小和尚.有天小和尚對老和尚說:師父師父說個故事給我聽吧.老和尚說:好.從前有座山.山裡有座廟.廟裡有老和尚和小和尚.有天小和尚對老和尚說:師父師父說個故事給我聽吧.老和尚說:好.從前有座山.山裡有座廟.廟裡有老和尚和小和尚.有天小和尚對老和尚說:師父師父說個故事給我聽吧.老和尚說:好.從前有座山.山裡有座廟.廟裡有老和尚和小和尚.有天小和尚對老和尚說:師父師父說個故事給我聽吧.老和尚說:好. .........(持續下去)

遞迴很困難 通常寫成迴圈後再改成遞迴

ASP.NET web froms GridView 較複雜自訂樣式分頁

GridView 物件 底下的

Gridrow 物件 為GridView 的每一行

pagerrow 物件 為GridView 的最底下控制行

pagertemplate 物件 建立此物件會取代 pagerrow

Button 按鈕控制項

LinkButton 外觀像超連結的按鈕控制項

ImageButton 外觀是圖片的按鈕控制項

asp控制項後端的css的class屬性為CssClass

值為純文字的後端框 可用label控制項 屬性text則可藉由後端操控

asp.net 後端只能抓到前端控制項屬性值,無法抓到標間中央標籤內的值?

PageIndex 現在狀態的頁數

上一頁 下一頁 合併為 切換分頁

物件觸發事件時會傳兩種東西到後端 1. 名稱 2.事件

protected void 功能名稱 ( 資料型態 物件名稱 ,EventArgs e )

<asp:LinkButton ID="lkbPrev" runat="server" CssClass="btn"
 OnClick="PageChange_Click">3</asp:LinkButton>
<asp:LinkButton ID="lkbNext" runat="server" CssClass="btn"
 OnClick="PageChange_Click">4</asp:LinkButton>
   //protected void lkbNext_Click(object sender, EventArgs e)
        //{
        //    GridView1.PageIndex++;
        //}

        //protected void lkbPrev_Click(object sender, EventArgs e)
        //{
        //    if(GridView1.PageIndex>0)
        //        GridView1.PageIndex--;
        //}

上面的寫法內聚力較高

        protected void PageChange_Click(object sender, EventArgs e)
        {
            if (((LinkButton)sender).ID == "lkbPrev")
            {
                if (GridView1.PageIndex > 0)
                    GridView1.PageIndex--;
            }
            else
            {
                GridView1.PageIndex++;
            }
        }

後端抓前端id 如果控制項擺在別人的控制項內則會抓不到id

必須在後端下指令找到它

    protected void GridView1_DataBound(object sender, EventArgs e)
        {
            string page = "Page " + (GridView1.PageIndex + 1) + " of " + GridView1.PageCount;
            ((Label)GridView1.BottomPagerRow.Cells[0].FindControl("lblInfo")).Text = page;
        }

前端薇 lable 所以 後端要轉型(指定型?

OnDataBoud事件 繫結時

 <asp:GridView ID="GridView1" 
 runat="server" DataSourceID="SqlDataSource1" 
 PageSize="1" AllowPaging="true"
 OnDataBound="GridView1_DataBound"
 >
<PagerTemplate>
<table style="width:100%">
                        <tr>
                            <td>
                               
                                <asp:LinkButton ID="lkbPrev" runat="server" CssClass="btn" OnClick="PageChange_Click">3</asp:LinkButton>
                                <asp:LinkButton ID="lkbNext" runat="server" CssClass="btn" OnClick="PageChange_Click">4</asp:LinkButton>
                                
                                <asp:DropDownList ID="ddlPager" runat="server">
                                  
                                </asp:DropDownList>
                            </td>
                            <td style="text-align:right">
                                <asp:Label ID="lblInfo" runat="server"></asp:Label>  
                            </td>
                        </tr>
</table>
</PagerTemplate>
</asp:GridView>

下拉式選單

頁數 = 1~ gridview.pagecount

每跑一次跑出一個item

   protected void GridView1_DataBound(object sender, EventArgs e)
        {
            string page = "Page " + (GridView1.PageIndex + 1) + " of " + GridView1.PageCount;
            ((Label)GridView1.BottomPagerRow.Cells[0].FindControl("lblInfo")).Text = page;

            for (int i = 1; i <= GridView1.PageCount; i++)
            {
                ListItem item = new ListItem();
                item.Text = i.ToString();
                if(GridView1.PageIndex==i-1)
                    item.Selected = true;
                ((DropDownList)GridView1.BottomPagerRow.Cells[0].FindControl("ddlPager")).Items.Add(item);
            }

            
        }

((DropDownList)GridView1.BottomPagerRow.Cells[0].FindControl("ddlPager")) = DropDownList物件

TextBox 鑄造控制項

TextBox tb = new TextBox ( ) ;

建構子

  protected void Page_Load(object sender, EventArgs e)
        {
            //TextBox tb = new TextBox();
            //tb.Text = "abcd";
            //form1.Controls.Add(tb);
        }

優化 鑄造跟找尋ID不用用迴圈重複

protected void GridView1_DataBound(object sender, EventArgs e)
        {
            TableCell tc = GridView1.BottomPagerRow.Cells[0];

            string page = "Page " + (GridView1.PageIndex + 1) + " of " + GridView1.PageCount;
            Label lblInfo = (Label)tc.FindControl("lblInfo");
            lblInfo.Text = page;

            DropDownList ddlPager = (DropDownList)tc.FindControl("ddlPager");

            ListItem item;
            for (int i = 1; i <= GridView1.PageCount; i++)
            {
                item = new ListItem();
                item.Text = i.ToString();
                if(GridView1.PageIndex==i-1)
                    item.Selected = true;
                ddlPager.Items.Add(item);
            }            
        }

利用下拉式選單直接切換頁面 ( 事件一定發生在DROPDOWNLIST上面 )

事件 SELECTEDINDEXCHANGED

區域變數

  protected void GridView1_DataBound(object sender, EventArgs e)
        {
 DropDownList ddlPager = (DropDownList)tc.FindControl("ddlPager");

            ListItem item;
            for (int i = 1; i <= GridView1.PageCount; i++)
            {
                item = new ListItem(i.ToString());
                //item.Text = i.ToString();

                if(GridView1.PageIndex==i-1)
                    item.Selected = true;
                ddlPager.Items.Add(item);
            }
}

AUTOPOSTBACK = TURE 才會自動F5

ONTEXTCHANGE = 專注點離開時發生

OVERLODING 多載

TEXT 介面上顯示

VALUE 資料庫給KEY

Previous2019/0304/SS集合運算/子查詢/exists&asp.net GridView 事件 OnRowDataBoundNext2019/0306/Javascript musicplay_really_end

Last updated 6 years ago

Was this helpful?

https://ithelp.ithome.com.tw/questions/10178717ithelp.ithome.com.tw
你有用 FindControl 時找不到 Control (控制項) 的經驗嗎 | The Will Will Web
Logo