扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
ASP.NET 2.0中给数据访问层添加参数化的方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
公司主营业务:网站制作、网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出北镇免费做网站回馈大家。
第三步:给数据访问层添加参数化的方法
至此,ProductsTableAdapter只有一个方法,GetProducts(),它返回数据库里的所有产品。能够操作所有的产品当然有用,但很多时候我们想要获取关于一个指定产品的信息,或者属于某个特定分类的所有产品。要想给我们的数据访问层添加这样的功能,我们可以给TableAdapter添加参数化的方法。
添加参数化:让我们来添加一个GetProductsByCategoryID(categoryID)方法。为给DAL添加新的方法,让我们回到DataSet设计器,在ProductsTableAdapter上按右鼠标,然后选择“添加查询(Add Query)”。
图 14: 在TableAdapter上按右鼠标,选择“添加查询”
向导首先会问我们是否要通过一个ad-hoc SQL语句还是生成一个新存储过程或者使用现有存储过程来访问数据库。让我们还是选择使用SQL 语句。接着,向导会问我们使用什么类型的SQL查询。因为我们想返回属于指定分类的所有产品,我们需要写一个返回数据行的SELECT语句。
图 15: 选择生成一个返回数据行的SELECT语句
添加参数化的下一步是定义用于访问数据的SQL查询语句。因为我们只想返回属于指定分类的那些产品,我重 用GetProducts()里的SELECT语句,但添加了一个WHERE 子 句:WHERE CategoryID = @CategoryID。其中的@CategoryID参数向TableAdapter配置向导表示我们正在生成的方法将需要一个对应类(即,可为null-nullable的整数)的输入参数。
图 16: 输入一个只返回指定分类的产品的查询
在添加参数化的***一步,我们可以选择使用何种数据访问模式,还可以定制生成的方法的名字。对应于Fill 模式,让我们把名字改成FillByCategoryID,对返回DataTable模式的方法(GetX方法),让我们来用GetProductsByCategoryID这个名字。
图 17: 为TableAdapter的方法选择名字
在结束向导后,DataSet设计器包含了这些新的TableAdapter的方法。
图18: 通过分类来查询产品
花点时间用同样的手法添加一个GetProductByProductID(productID) 方法。
这些参数化的查询可以在DataSet设计器里直接测试。在TableAdapter中的方法上按右鼠标,然后选择“预览数据(Preview Data)”。接着,输入对应参数的值,然后按“预览(Preview)”。
图19: 属于饮料(Beverages)类的那些产品列单
通过我们的DAL中的GetProductsByCategoryID(categoryID)方法,我们就能设计一个asp.net网页来显示属于指定分类的那些产品。下面这个例子显示了属于Beverages(饮料)类(CategoryID=1)的所有产品。
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(); } }
图 属于Beverages(饮料)类的所有产品显示
关于ASP.NET 2.0中给数据访问层添加参数化的方法是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流