2022年9月13日 星期二

ASP.NET筆記(不定時更新) - GridView與SQL

[建立]
建立新的專案→ASP.NET Web應用程式(.NET Framework)→空白/Web Form


方案總管→"專案名稱"(右鍵)→加入→新增項目
Web.config  設定檔(網頁開始前就先載入)

[C#語法]
<% 程式碼 %>  Inline Code(寫在aspx檔的<body>中)
Response.Redirect(“網頁檔名.副檔名”)  前往指定的網頁
Response.Write(字串)  在畫面上顯示指定字串
Response.End()  立即終止程式
字串.Trim()  將字串中的空白移除
&nbsp  空白
Convert.ToInt32("字串")   將字串轉為數值
Request["變數"]   抓取網頁所傳遞的參數(字串)
Request.QueryString["變數"];  抓取網頁所傳遞的參數(字串)
網址?變數A=參數A&變數B=參數B
!Page.IsPostBack  判斷網頁是否為第一次載入(布林值)
DateTime.Now.ToLongTimeString()  回傳目前時間
System.Threading.Thread.Sleep(毫秒);  系統沉睡(1000毫秒=1秒)
#region 註解名稱  可以將一段程式碼整理起來來增加可讀性
程式碼
#endregion
Session[自訂名稱]  限定在同一個瀏覽器中共用的變數,多用於辨識使用者

[VS連接SQL]
在畫面上拉入SqlDataSource→設定資料來源→伺服器名稱打.(localhost)
然後把它刪掉,Web.config裡面就會有連接資料
Web.config檔案中會有<connectionStrings>顯示連結參數
必須將Data Source中的值改為SQL Server的名稱

[建立可重複使用的類別(副程式)]
方案總管→"專案名稱"(右鍵)→加入→加入新項目→類別 
使用方式:
<%
  類別名稱 自訂名稱 = new 類別名稱();
  類別名稱.方法名稱(參數)


%>

[DataTable]


dt.Rows[該資料流水號][資料欄位(依照查詢順序)提取查詢資料中的值

[SqlCommand]
SqlCommand cmd = new SqlCommand("預存程序名稱", conn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
  設定呼叫格式為預存程序
SqlDataReader dr = cmd.ExecuteReader();  取得資料庫中的資料
dr.Read()  取得資料並前往下一筆資料(回傳布林值)
dr.FieldCount  回傳該筆資料中的陣列筆數(回傳數值)
dr.GetName(i)  取得該陣列索引中的欄位名稱
dr.GetValue(i)  取得該陣列索引中的欄位內容

[DetailsView]
以表格的方式顯示單一筆資料
每個資料行(column)表示整筆資料,每個資料列(row)表示一個欄位
DetailsView1.DataSource = DataTable設定資料來源
DetailsView1.DataBind();  建立資料表格

[GridView連結SQL Server]
智慧標籤→選擇資料來源→<新資料來源…>→選擇資料庫→新增連接
→伺服器名稱填寫網域名稱(本機打.即可)→選取資料庫名稱→進階→產生陳述式(增加編輯與刪除功能)

[GridView_後端] 
以表格的方式顯示多筆資料
每個資料行(column)表示一個欄位,每個資料列(row)表示一筆紀錄
編輯資料行→ItemStyle→Wrap=False  取消強制換行
GridView1.SelectedIndex  取得索引值
GridView1.SelectedRow.RowIndex  取得索引值
GridView1.SelectedValue  取得主索引鍵的值(DataKeyNames的屬性)
GridView1.SelectedDataKey.Value  取得主索引鍵的值(DataKeyNames的屬性)
GridView1.SelectedDataKey.Values[0]; 
取得主索引鍵的第一個值(DataKeyNames的屬性為多個時)
GridView1_RowCommand {
  e.CommandName  取得命令名稱
  Convert.ToInt32(e.CommandArgument)  取得索引值
}
for (int i=0; i<GridView1.Rows.Count; i++) {}  逐行讀取資料筆
GridView1.Rows[i].Cells[0].Text  讀取i資料列第一欄位的內容
GridView1.Rows[i].Attributes.Add("style", "background-color:#FFC080");  將i資料列的背景顏色上色

[GridView_抓取子控制項]
控制項 變數 = (控制項) GridView1.Rows[i].FindControl("欲抓取控制項.Text");
藉由將欄位轉換為TemplateField,可於前端修改樣本,進而使用後端抓取子控制項。

[ASP.NET連結SQL Server查詢]


[ASP.NET連結SQL Server輸入]


[實作SQL副程式:資料庫新增、編輯、刪除]



[實作SQL副程式:資料庫查詢]



[實作:圖片上傳資料庫]



[實作:資料庫圖片讀取](須建立一個.ashx檔案)


網頁利用ashx檔名.ashx後面加上變數=參數

[實作前端GridView:動態(自訂)欄位]





[實作後端抓取前端GridView控制項:有點不會解釋,但是方便查看]



[實作JavaScript:網頁防呆]


[實作JavaScript:網頁回到上一頁]


沒有留言:

張貼留言

MS SQL語法筆記(不定時更新)

[註解] -- 註解內容 單行註解 /* 註解內容 */ 多行註解 參考 : https://www.1keydata.com/tw/sql/sql.html [創建資料庫與資料表] Create database 資料庫名稱 --創建資料庫(T-SQL語句大小寫不分) ...