全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据访问层DAL程序结构的思考前面,我们已经当好了一个裁缝,量体裁衣,精心打造了一个数据集Model;我们又把ADO.NET的核心类封装到了SQLHelper中,构建了一个函数集DBUtilty。那,现在,是时候,我们组建一个职能部门,把那些基础的脏活、累活都交给他们去做了吧?对了,这个职能部门,就叫做数据访问层DAL【操作步骤】一、添加类库DAL,在DAL中添加类Category.cs,并在类库中添加函数GetCategories(),代码如下:using System; using System.Data; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; using WestGarden.Model; using WestGarden.DBUtility; namespace WestGarden.DAL public class Category private const string SQL_SELECT_CATEGORIES = SELECT CategoryId, Name, Descn FROM Category; public IList GetCategories() IList categories = new List(); using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_CATEGORIES, null) while (rdr.Read() CategoryInfo cat = new CategoryInfo(rdr.GetString(0), rdr.GetString(1), rdr.GetString(2); categories.Add(cat); return categories; 函数GetCategories()要在SQLHelper中读取连接字符串,因此,需要在SQLHelper.cs中添加代码:public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStringsNetShopConnString.ConnectionString;注意添加引用System.Configuration。二、使用用户控件在Web中新建文件夹Controls并在其中添加用户控件NavigationControl.ascx,窗体页和代码页代码分别如下:1、NavigationControl.ascx td class=asp:HyperLink runat=server ID=lnkCategory NavigateUrl= Text= /asp:HiddenField runat=server ID=hidCategoryId Value= / 2、NavigationControl.ascx.csusing System; using System.Web.UI.WebControls; using WestGarden.DAL; namespace WestGarden.Web public partial class NavigationControl : System.Web.UI.UserControl private string controlStyle; protected string ControlStyle get return controlStyle; protected void GetControlStyle() if (Request.ServerVariablesSCRIPT_NAME.ToLower().IndexOf(default.aspx) 0) controlStyle = navigationLinks; elsecontrolStyle = mainNavigation; protected void Page_Load(object sender, EventArgs e) GetControlStyle(); BindCategories(); string categoryId = Request.QueryStringcategoryId; if (!string.IsNullOrEmpty(categoryId) SelectCategory(categoryId); private void SelectCategory(string categoryId) foreach (RepeaterItem item in repCategories.Items) HiddenField hidCategoryId = (HiddenField)item.FindControl(hidCategoryId); if(hidCategoryId.Value.ToLower() = categoryId.ToLower() HyperLink lnkCategory = (HyperLink)item.FindControl(lnkCategory); lnkCategory.ForeColor = System.Drawing.Color.FromArgb(199, 116, 3); break; private void BindCategories() Category category = new Category(); repCategories.DataSource = category.GetCategories(); repCategories.DataBind(); 三、为Default.aspx添加主题WestGarden并添加样式表StyleSheet.css,在Default.aspx中应用主题,删除Default.aspx.cs代码页中的代码及Default.aspx中Reapeter控件,直接把用户控件拖入到页面中。【几点说明】1、 用户控件NavigationControl,由于要应用在首页和母版页两个地方,在这两个地方的样式是不一样的,为此,有了函数GetControlStyle(),通过判断地址中有没有default.aspx来确定采用什么样式。2、 母版页中的导般栏,选择点击分类项后,相应分类项的颜色会改变。为此,有了函数SelectCategory(string categoryId),通过地址栏中获取的CategoryId,查询预先放置在HiddenField中的CategoryId,获取相应的Repeater控件的分类项,并设置相应HyperLink的颜色。3、 我们把ADO.NET的核心类封装在SQLHelper.cs中,只要告诉它针对哪个连接,命令类型是什么、命令内容是什么,命令参数是什么,就可以使用其中的通用数据库访问函数,完成基本的查询、更新、插入、删除操作。4、 我们把基本的查询、更新、插入、删除操作的函数,封装在数据访问层DAL中,也就是把访问数据库的基本参数:针对哪个连接、命令类型、命令内容、命令参数,都存放在数据访问层的相应函数中,这样,上一层,在我们现在这个两层的结构中的应用层,就不再做那些具体的连接、执行命令操作;不再做那些具体的配置连接字符串、命令内容的操作,只需要简单发布一个指令,调用一个GetCategories()函数,就一切都OK了,我们,是不是已经由奴隶到将军了呢?另:前面,我们十八相送,把ADO.NET核心类送到了类库DBUtility中的SQLHelp.c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年江西旅游商贸职业学院高职单招笔试综合素质历年参考题库含答案解析
- 药学事业编考模拟试题库带答案
- 营销员三级技能操作题库及参考答案
- 行政专员笔试题库带答案
- 行测测试题库及参考答案
- 认知能力测评题库及参考答案
- 诗词题库及参考答案
- 路桥安全考模拟试卷子(含答案)
- 辽宁行测题库带答案
- 通信兵考试题库带答案
- 《我和我和他和他》舞台剧本(排练精简版)
- 2027贵州航天电器秋季招聘284人笔试模拟试题及答案详解
- 2026年成都市中考英语试题(含答案)
- 2026年城市管廊运维安全考试题(附答案)
- 2026年水利安全员b证考试题库及答案解析
- 2026年消防安全专题培训(含近期火灾事故案例)
- 国聘社会招聘笔试测评题库
- 纳米多孔材料复合膜:化工分离领域的制备技术与应用探索
- 高三化学复习重点教学设计方案
- 2026年保安员证考试题库及答案1套
- 养老机构安全事故处理与报告制度
评论
0/150
提交评论