校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 在ASP.NET 2.0中操作數據之六:編程設置ObjectDataSource的參數值

在ASP.NET 2.0中操作數據之六:編程設置ObjectDataSource的參數值

熱門標簽:代理接電話機器人如何取消 地圖定位圖標標注 遂寧市地圖標注app 天心智能電銷機器人 濮陽外呼電銷系統怎么樣 400電話辦理哪家性價比高 塔城代理外呼系統 地圖標注的公司有哪些 地圖標注專業團隊

導言

  正如我們在上一節的教程中所看到的,有很多可供選擇的方式把參數的值傳遞到OjbectDataSource的方法里。假如參數值是采用硬編碼方式,來源于頁面上的一個Web控件,又或者其他可被數據源Parameter對象讀取的源,那么這個值可以綁定到輸入參數而不需要寫一行的代碼。

  然而有些時候,參數值來自某些在數據源的內置Parameter對象里還沒有計算出來的源。假如我們的站點支持我們的考慮那么我們也許希望參數基于當前登錄用戶。又或者我們在參數傳送到ObjectDataSource的隱含對象的方法前做一些客戶化定制。

  無論什么時候調用ObjectDataSource的Seelect方法,它都會首先觸發它的Selecting事件,然后才調用ObjectDataSource的隱含對象的方法,完成后則激發ObjectDataSource ObjectDataSource的Selected 事件(圖一說明這些事件的順序)。可以在Selecting事件的事件委托中對參數的值進行設置或更改。

圖 1: ObjectDataSource的Selected 和 Selecting 事件分別在調用它的隱含對象的方法之前和之后觸發

  這一節里我們將看看添加一個接受一個輸入參數方法到DAL和BLL層,參數名為Month,int類型,方法返回一個EmployeesDataTable對象,里邊包含的是雇傭周年紀念都指定月份的雇員。我們的例子將編碼設置為基于當前月份,顯示一個“本月雇用周年紀念員工”列表。

讓我們開始吧!
第一步: 添加一個方法到 EmployeesTableAdapter

  在我們的第一個例子里,我們需要添加一個方法來獲取那些雇用日期(HireDate)在某個指定月份的員工。在我們的程序架構下為了提供這個功能,我們首先需要在通過特定SQL語句映射出來的EmployeesTableAdapter中創建一個方法。為了實現這一點,首先打開Northwind類型化數據集,在EmployeesTableAdapter標簽上右鍵選擇“添加查詢”。

圖 2: 在 EmployeesTableAdapter里添加一個查詢

  選擇返回一個或多個行和列的SQL語句。當到達指定SELECT語句窗口時,EmployeesTableAdapter已經裝載了默認的SELECT語句。簡單地,添加一個WHERE子句:WHERE DATEPART(m, HireDate) = @Month 。其中DATEPART是T-SQL里的一個函數,用作返回日期類型的一部分;在這里,我們使用DATEPART函數返回雇用日期(HireDate)列的月份部分。

圖 3: 僅返回 HireDate 列的值小于等于參數 @HiredBeforeDate的行

最后,分別把默認的方法名FillBy和GetDataBy更改為FillByHiredDateMonth和GetEmployeesByHiredDateMonth 。

圖 4: 選擇比FillBy和GetDataBy更恰當的方法名稱

 

點擊“完成”結束向導并返回到數據集的設計界面。這時候EmployeesTableAdapter會包含一套新的方法來獲取指定月份雇用的員工。

圖 5: 新的方法出現在數據集的設計界面

第二步: 在業務邏輯層添加方法 GetEmployeesByHiredDateMonth(month)

  因為我們的程序架構使用了單獨的一層來處理業務邏輯和數據邏輯,我們需要在BLL里增加一個方法,該方法調用DAL的方法獲取指定月份里雇用的員工。打開文件EmployeesBLL.cs并添加下面這個方法:

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]

public Northwind.EmployeesDataTable GetEmployeesByHiredDateMonth(int month)

{

 return Adapter.GetEmployeesByHiredDateMonth(month);

}

和此類里的其他方法一樣,GetEmployeesByHiredDateMonth(month)僅僅是簡單地調用DAL并返回結果。

第三步: 顯示雇用周年紀念日在本月份的員工

  最后一部我們舉例說明如何顯示雇用周年紀念在本月份的員工。首先,添加一個GridView控件到頁面ProgrammaticParams.aspx,該頁面在文件夾BasicReporting里。添加一個新的ObjectDataSource控件作為它的數據源。配置ObjectDataSource使用類EmployeesBLL并指定SelectMethod屬性為GetEmployeesByHiredDateMonth(month)。

圖 6: 使用EmployeesBLL 類

圖 7: 選擇GetEmployeesByHiredDateMonth(month)方法

最后一屏要求我們給month參數提供參數源。既然我們將編碼設置這個值,就讓參數源維持它的默認選項None,點擊“完成”。

圖 8: 讓參數源設置為None

這將在ObjectDataSource的SelectParameters集合里創建一個未指定參數值的Parameter對象。

asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString="original_{0}"

 SelectMethod="GetEmployeesByHiredDateMonth" TypeName="EmployeesBLL">

 SelectParameters>

  asp:Parameter Name="month" Type="Int32" />

 /SelectParameters>

/asp:ObjectDataSource>

  要編碼設置這個參數值,我們需要給ObjectDataSource的Selecting事件添加一個事件委托。為了實現這一點,到設計視圖里在ObjectDataSource上雙擊。另一種方式是選中ObjectDataSource在屬性窗口里點擊黃色閃電小圖標,然后,直接在Selecting這一欄里雙擊或者輸入一個你要使用的事件委托的名稱。

圖 9:點擊屬性窗口里的閃電圖標列出Web控件的所有事件

兩種途徑都可以在頁面的代碼隱藏類里增加一個對ObjectDataSource的Selecting事件的事件委托。在這個事件委托里,我們可以通過使用e.InputParameters[parameterName]讀取參數的值,其中parameterName的值是asp:Parameter>標簽里的屬性Name的值(InputParameters也可以按照索引訪問,用e.InputParameters[index])。為了把month參數設置為當前月份,需要在Selecting事件委托里加入如下代碼:

protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)

{

 e.InputParameters["month"] = DateTime.Now.Month;

}

當通過瀏覽器訪問該頁面,我們可以看到只有一個員工是在當前月份(三月)雇用的:Laura Callahan,他從1994年3月開始雇用。

圖 10: 雇用周年紀念日在本月份的員工被顯示出來了

總結

  雖然可以用特定的方式聲明ObjectDataSource的參數值而不需要寫代碼,編程設置參數值同樣很容易。我們需要做的僅僅是給ObjectDataSource的Selecting事件增加一個事件委托,它在調用隱含對象的方式前觸發,并且通過InputParameters集合手工設置一個或多個參數值。

本節結束基本這一章。下一節我們開始主從數據一章,這一章里我們將著眼于允許訪問者篩選數據和主從數據處理的技巧。

祝編程快樂!

作者簡介

Scott Mitchell,著有六本ASP/ASP.NET方面的書,是4GuysFromRolla.com的創始人,自1998年以來一直應用微軟Web技術。Scott是個獨立的技 術咨詢顧問,培訓師,作家,最近完成了將由Sams出版社出版的新作,24小時內精通ASP.NET 2.0。他的聯系電郵為mitchell@4guysfromrolla.com,也可以通過他的博客http://ScottOnWriting.NET與他聯系。

您可能感興趣的文章:
  • 詳解ASP.NET Core WebApi 返回統一格式參數
  • .NET/C#利用反射調用含ref或out參數的方法示例代碼
  • 淺談Asp.net Mvc之Action如何傳多個參數的方法
  • Ajax提交參數的值中帶有html標簽不能提交成功的解決辦法(ASP.NET)
  • ASP.NET MVC后臺參數驗證的幾種方式
  • ASP.NET MVC傳送參數至服務端詳解及實例
  • ASP.NET jquery ajax傳遞參數的實例
  • .Net獲取URL中文參數值的亂碼問題解決方法總結
  • .net core在服務器端獲取api傳遞的參數過程

標簽:河南 本溪 汕頭 婁底 重慶 宜春 麗江 吉林

巨人網絡通訊聲明:本文標題《在ASP.NET 2.0中操作數據之六:編程設置ObjectDataSource的參數值》,本文關鍵詞  在,ASP.NET,2.0,中,操作,數據,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在ASP.NET 2.0中操作數據之六:編程設置ObjectDataSource的參數值》相關的同類信息!
  • 本頁收集關于在ASP.NET 2.0中操作數據之六:編程設置ObjectDataSource的參數值的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产女同性恋一区二区| 国产精品嫩草99a| 国产精品乱人伦一区二区| 国产一区二区三区黄视频| 欧美视频你懂的| 亚洲成a人片在线不卡一二三区| 成人性色生活片| 亚洲国产激情av| 99久久综合国产精品| 亚洲视频一区二区在线| 99re8在线精品视频免费播放| 日本一区二区高清| 欧美日韩视频在线第一区| 亚洲成av人片在www色猫咪| 日韩欧美国产一区二区在线播放 | 亚洲天堂免费看| 欧美日韩一区二区在线观看视频| 日本网站在线观看一区二区三区| 精品三级在线观看| 欧美色涩在线第一页| 精品一区二区三区影院在线午夜| 中文字幕在线免费不卡| 欧美一区2区视频在线观看| 色八戒一区二区三区| 国产精品资源在线看| 天天操天天色综合| 亚洲精品午夜久久久| 亚洲国产精品二十页| 精品国产1区2区3区| 7777精品伊人久久久大香线蕉的| 成人动漫一区二区| 国产精品一二三四五| 麻豆精品新av中文字幕| 亚洲狠狠爱一区二区三区| 国产精品嫩草影院av蜜臀| 国产清纯白嫩初高生在线观看91 | 日韩午夜激情免费电影| 欧美日韩国产区一| 欧美性大战久久久久久久| 91国偷自产一区二区开放时间| 99久久久无码国产精品| 91免费在线看| 91麻豆精品国产91久久久更新时间| av影院午夜一区| 精品视频在线免费看| 91麻豆精品国产综合久久久久久 | 欧美一级国产精品| 精品国产凹凸成av人网站| 亚洲精品v日韩精品| 一区二区三区国产精品| 欧美日韩国产成人在线91| 欧美日韩高清影院| 久久精品一级爱片| 亚洲天堂精品在线观看| 日本不卡一区二区三区高清视频| 蜜桃视频在线观看一区| jlzzjlzz国产精品久久| 欧美亚洲综合另类| 国产日韩欧美综合一区| 亚洲天天做日日做天天谢日日欢| 亚洲国产日韩综合久久精品| 国产精品综合网| 在线播放一区二区三区| 中文字幕精品一区二区三区精品| 亚洲第一电影网| 91麻豆免费看| 综合av第一页| 成人午夜精品在线| 精品福利一区二区三区| 日韩精品91亚洲二区在线观看| 国产高清不卡一区二区| 精品日韩在线观看| 日韩一区日韩二区| 91蜜桃免费观看视频| 久久先锋影音av鲁色资源网| 免费高清成人在线| 欧美理论电影在线| 成人免费在线播放视频| av一区二区三区四区| 亚洲国产岛国毛片在线| 成人午夜视频福利| 成人欧美一区二区三区1314| 91老师国产黑色丝袜在线| 一区二区三区在线观看网站| 91成人看片片| 性感美女久久精品| 精品国产一二三区| 国产成人自拍网| 亚洲美女视频在线| 7777精品久久久大香线蕉| 精品一区二区三区香蕉蜜桃| 日本一区二区电影| 在线一区二区观看| 韩国女主播一区| 一区二区三区中文免费| 4438x成人网最大色成网站| 奇米在线7777在线精品| 国产偷国产偷亚洲高清人白洁| 国产成人鲁色资源国产91色综| 中文字幕亚洲综合久久菠萝蜜| 91免费在线播放| 懂色av噜噜一区二区三区av| 亚洲成人自拍网| 成人欧美一区二区三区白人| 欧美人与禽zozo性伦| 成人国产一区二区三区精品| 亚洲亚洲精品在线观看| 欧美国产日产图区| 2017欧美狠狠色| 精品久久99ma| 色综合天天视频在线观看| 国产成人综合自拍| 国产美女一区二区三区| 婷婷国产在线综合| 1000部国产精品成人观看| 久久久亚洲精华液精华液精华液 | 最新热久久免费视频| 国产亚洲精品福利| 91精品国产综合久久小美女| 午夜久久久影院| 国产精品拍天天在线| 日韩欧美aaaaaa| 精品久久久久久无| 久久久99久久| 亚洲免费观看高清完整| 一区二区三区免费在线观看| 一区二区三区日韩精品| 亚洲国产精品精华液网站| 五月天欧美精品| 国产一区二区h| 91影视在线播放| 欧美二区在线观看| 日韩精品一区二区三区视频播放 | 国产自产v一区二区三区c| 国产成人午夜视频| 91国产福利在线| 欧美一区日韩一区| 国产精品人成在线观看免费| 中文字幕中文字幕在线一区| 中文字幕综合网| 秋霞影院一区二区| 91天堂素人约啪| 欧美va在线播放| 亚洲一区二区欧美| 全国精品久久少妇| 色8久久人人97超碰香蕉987| 欧美一卡二卡三卡| 国产免费观看久久| 666欧美在线视频| 久久久久久日产精品| 欧美理论片在线| 亚洲视频电影在线| 成人一区二区在线观看| 日韩午夜av电影| 一个色综合av| 欧美日韩日本视频| 亚洲欧美另类在线| 99久久精品免费观看| 国产精品亲子伦对白| 国产a级毛片一区| 国产日韩v精品一区二区| 激情国产一区二区| 久久人人爽爽爽人久久久| 国产乱码精品一区二区三区忘忧草| 欧美一卡2卡三卡4卡5免费| 日韩极品在线观看| 精品免费视频一区二区| 黑人巨大精品欧美黑白配亚洲| 欧美xxxxx牲另类人与| 国产精选一区二区三区| 成人欧美一区二区三区黑人麻豆| 91网上在线视频| 蜜乳av一区二区| 久久久99精品免费观看| 色综合天天综合给合国产| 亚洲第一福利视频在线| 久久久电影一区二区三区| 91小视频免费观看| 免播放器亚洲一区| 中文字幕在线播放不卡一区| 欧洲精品一区二区| 国产老女人精品毛片久久| 久久精品一区蜜桃臀影院| 欧美伊人久久久久久久久影院| 亚洲综合小说图片| 国产无遮挡一区二区三区毛片日本| 国产福利一区二区三区在线视频| 亚洲一区在线观看视频| 1024亚洲合集| 中文字幕av一区二区三区高| 欧美日韩国产片| 欧美日韩视频在线一区二区| 成人污视频在线观看| 久久99精品国产.久久久久久| 一区二区三区久久| 一区二区中文字幕在线| 亚洲国产精华液网站w| 国产三级久久久| 国产午夜精品一区二区| 久久品道一品道久久精品|