溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ASP.NET 2.0中給數(shù)據(jù)訪問層添加參數(shù)化的方法是什么

發(fā)布時間:2021-10-28 11:00:21 來源:億速云 閱讀:133 作者:柒染 欄目:編程語言

ASP.NET 2.0中給數(shù)據(jù)訪問層添加參數(shù)化的方法是什么,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

第三步:給數(shù)據(jù)訪問層添加參數(shù)化的方法

至此,ProductsTableAdapter只有一個方法,GetProducts(),它返回數(shù)據(jù)庫里的所有產(chǎn)品。能夠操作所有的產(chǎn)品當然有用,但很多時候我們想要獲取關(guān)于一個指定產(chǎn)品的信息,或者屬于某個特定分類的所有產(chǎn)品。要想給我們的數(shù)據(jù)訪問層添加這樣的功能,我們可以給TableAdapter添加參數(shù)化的方法。

添加參數(shù)化:讓我們來添加一個GetProductsByCategoryID(categoryID)方法。為給DAL添加新的方法,讓我們回到DataSet設(shè)計器,在ProductsTableAdapter上按右鼠標,然后選擇“添加查詢(Add Query)”。

ASP.NET 2.0中給數(shù)據(jù)訪問層添加參數(shù)化的方法是什么

圖 14: 在TableAdapter上按右鼠標,選擇“添加查詢”

向?qū)紫葧栁覀兪欠褚ㄟ^一個ad-hoc SQL語句還是生成一個新存儲過程或者使用現(xiàn)有存儲過程來訪問數(shù)據(jù)庫。讓我們還是選擇使用SQL 語句。接著,向?qū)栁覀兪褂檬裁搭愋偷腟QL查詢。因為我們想返回屬于指定分類的所有產(chǎn)品,我們需要寫一個返回數(shù)據(jù)行的SELECT語句。

ASP.NET 2.0中給數(shù)據(jù)訪問層添加參數(shù)化的方法是什么

圖 15: 選擇生成一個返回數(shù)據(jù)行的SELECT語句

添加參數(shù)化的下一步是定義用于訪問數(shù)據(jù)的SQL查詢語句。因為我們只想返回屬于指定分類的那些產(chǎn)品,我重 用GetProducts()里的SELECT語句,但添加了一個WHERE 子 句:WHERE CategoryID = @CategoryID。其中的@CategoryID參數(shù)向TableAdapter配置向?qū)П硎疚覀冋谏傻姆椒▽⑿枰粋€對應(yīng)類(即,可為null-nullable的整數(shù))的輸入?yún)?shù)。

ASP.NET 2.0中給數(shù)據(jù)訪問層添加參數(shù)化的方法是什么

圖 16: 輸入一個只返回指定分類的產(chǎn)品的查詢

在添加參數(shù)化的***一步,我們可以選擇使用何種數(shù)據(jù)訪問模式,還可以定制生成的方法的名字。對應(yīng)于Fill 模式,讓我們把名字改成FillByCategoryID,對返回DataTable模式的方法(GetX方法),讓我們來用GetProductsByCategoryID這個名字。

ASP.NET 2.0中給數(shù)據(jù)訪問層添加參數(shù)化的方法是什么

圖 17: 為TableAdapter的方法選擇名字

在結(jié)束向?qū)Ш?,DataSet設(shè)計器包含了這些新的TableAdapter的方法。

ASP.NET 2.0中給數(shù)據(jù)訪問層添加參數(shù)化的方法是什么

圖18: 通過分類來查詢產(chǎn)品

花點時間用同樣的手法添加一個GetProductByProductID(productID) 方法。

這些參數(shù)化的查詢可以在DataSet設(shè)計器里直接測試。在TableAdapter中的方法上按右鼠標,然后選擇“預(yù)覽數(shù)據(jù)(Preview Data)”。接著,輸入對應(yīng)參數(shù)的值,然后按“預(yù)覽(Preview)”。

ASP.NET 2.0中給數(shù)據(jù)訪問層添加參數(shù)化的方法是什么

圖19: 屬于飲料(Beverages)類的那些產(chǎn)品列單

通過我們的DAL中的GetProductsByCategoryID(categoryID)方法,我們就能設(shè)計一個asp.net網(wǎng)頁來顯示屬于指定分類的那些產(chǎn)品。下面這個例子顯示了屬于Beverages(飲料)類(CategoryID=1)的所有產(chǎn)品。

Beverages.aspx

asp.net

 < %@ Page Language="C#"    AutoEventWireup="true" CodeFile="Beverages.aspx.cs"    Inherits="Beverages" %>   < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0    Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   < html xmlns="http://www.w3.org/1999/xhtml" >  < head runat="server">      < title>Untitled Pagetitle>      < link href="Styles.css"    rel="stylesheet"    type="text/css"    />  < /head>  < body>      < form id="form1" runat="server">      < div>          < h2>Beveragesh2>          < p>              < asp:GridView ID="GridView1" runat="server"              CssClass="DataWebControlStyle">                 < HeaderStyle CssClass="HeaderStyle" />                 < AlternatingRowStyle CssClass="AlternatingRowStyle" />              asp:GridView>               < /p>      < /div>      < /form>  < /body>  < /html>

Beverages.aspx.cs

using System;  using System.Data;  using System.Configuration;  using System.Collections;  using System.Web;  using System.Web.Security;  using System.Web.UI;  using System.Web.UI.WebControls;  using System.Web.UI.WebControls.WebParts;  using System.Web.UI.HtmlControls;  using NorthwindTableAdapters;   public partial class    Beverages : System.Web.UI.Page  {      protected void    Page_Load(object sender, EventArgs e)      {          ProductsTableAdapter productsAdapter = new          ProductsTableAdapter();          GridView1.DataSource =            productsAdapter.GetProductsByCategoryID(1);          GridView1.DataBind();      }  }

ASP.NET 2.0中給數(shù)據(jù)訪問層添加參數(shù)化的方法是什么

圖 屬于Beverages(飲料)類的所有產(chǎn)品顯示

關(guān)于ASP.NET 2.0中給數(shù)據(jù)訪問層添加參數(shù)化的方法是什么問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI