SqlDataSource控制項,由四個精微空間構成:
1,嚮導。2,屬性。3,控制項屬性代碼。4,後台代碼。
1,嚮導:就是下一步->下一步->完成。
資料庫連接字串->自訂sql語句或預存程序->指定where語句的參數來源。
資料庫連接字串->選擇表->選擇列->配置where語句,orde rby語句,產生insert,update,delete語句->指定where語句的參數來源。(這是圖形化操作)
嚮導的每一步操作,都會產生控制項屬性代碼。
2,屬性:一張屬性列表,然後你配置。
嚮導能實現的,屬性也能實現,而且實現得更多。 包括緩衝,取到值是null或取不到值,資料衝突,DataReader或DataSet,以及檢視狀態。
屬性的操作,同時產生控制項屬性代碼。
3,控制項屬性代碼:HTML有原始碼,asp.net控制項也有原始碼。
4,後台代碼: 控制項屬性代碼能實現的,後台代碼都能實現,而且實現得更多。比如用SqlDataSource控制項,不用資料繫結控制項,顯示位元據的映像。後台代碼往往使用SqlDataSource控制項的事件,處理各種問題,比如控制項屬性代碼裡沒聲明sql查詢語句參數,可在後台代碼添加一個sql查詢語句的參數。
-----------------------------------------------------------------
編程實現>ASP.NET 3.5開發範例精講精析>探討SqlDataSource控制項>嚮導>指定參數
都是sql語句的查詢,刪除,插入,更新都需要參數,用來定位。參數來源:
asp.net控制項,使用者佈建檔案web.config,查詢字串,會話session,cookie,後台代碼自訂參數。
-----------------------------------------------------------------
編程實現>ASP.NET 3.5開發範例精講精析>探討SqlDataSource控制項>屬性>CancelSelectOnNullParameter屬性
下拉式清單,沒選擇任何資料,但把所有資料都查出來。
sql的查詢語句需要參數,你給它Null 字元串,那SqlDataSource控制項擷取到的參數是null,SqlDataSource就不執行查詢語句。
你要執行的話,設定 CancelSelectOnNullParameter屬性為false,然後再改寫sql語句。
-----------------------------------------------------------------
編程實現>ASP.NET 3.5開發範例精講精析>探討SqlDataSource控制項>屬性>DataSourceMode屬性
DataSourceMode屬性有兩個選擇,一是DataReader,二是DataSet。 DataReader速度快,不支援緩衝,分頁與動態排序。DataSet支援緩衝,分頁與動態排序,但速度慢。本質上,DataReader取得的資料不儲存在伺服器記憶體,但DataSet會。
-----------------------------------------------------------------
編程實現>ASP.NET 3.5開發範例精講精析>探討SqlDataSource控制項>屬性>使用FileterExpression屬性篩選資料
把所需資料讀出用有兩種方式。一,直接在sql查詢語句設定where=什麼就好。二,sql查詢語句是所有都查出來,用FileterExpression屬性篩選。所以第二種方式,要DataSet,緩衝,參數。
第二種方式的優點就是:頻繁篩選其他條件,速度快。但如果不篩選其他條件,顯然浪費速度。
-----------------------------------------------------------------
編程實現>ASP.NET 3.5開發範例精講精析>探討SqlDataSource控制項>後台代碼>處理sql命令執行錯誤
人在江湖飄,哪有不挨刀。程式也不例外。如何捕捉 SqlDataSource控制項異常(比如sql語句中查詢了不存在的表),只需在SqlDataSource控制項的Selected(或者插入,更新,刪除語句)事件處理函數裡編寫異常判斷捕捉代碼即可。還要告訴編譯器,異常已由我自行處理,也就是ExceptionHandled屬性設定成true。
-----------------------------------------------------------------
編程實現>ASP.NET 3.5開發範例精講精析>探討SqlDataSource控制項>後台代碼>取消sqldatasource控制項的執行
執行sqldatasource前,驗證參數是否符合要求,不符合,則取消執行。
在後台代碼中,在事件中編寫代碼來判斷參數的正確與否。有五種事件,查,增,刪,改,篩選(Filtering)