一、界面设计

做一个框架可以放搜出来的表

添加一个gridview可以用来显示数据

编辑列

写属性

可用字段选择boundfield-在boundfiled属性里面添加sortExpression和datafield,以及要表头要显示的名字headertext.

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="365px"><Columns><%--中文意思:列。放GridView控件里面的各列--%><asp:BoundField DataField="kcLeixing" HeaderText="课程类型" SortExpression="kcLeixing"ItemStyle-HorizontalAlign="Center"><ItemStyle HorizontalAlign="Center"></ItemStyle></asp:BoundField><asp:BoundField DataField="kcBiaoti" HeaderText="课程标题" SortExpression="kcBiaoti"ItemStyle-HorizontalAlign="Center"><ItemStyle HorizontalAlign="Center"></ItemStyle></asp:BoundField><asp:BoundField DataField="kcJieshao" HeaderText="课程介绍" SortExpression="kcJieshao"ItemStyle-HorizontalAlign="Center"><ItemStyle HorizontalAlign="Center"></ItemStyle></asp:BoundField><asp:BoundField DataField="dianzanshu" HeaderText="点赞数" SortExpression="dianzanshu"ItemStyle-HorizontalAlign="Center"><ItemStyle HorizontalAlign="Center"></ItemStyle></asp:BoundField><asp:BoundField DataField="liulanshu" HeaderText="浏览数" SortExpression="liulanshu"ItemStyle-HorizontalAlign="Center"><ItemStyle HorizontalAlign="Center"></ItemStyle></asp:BoundField><asp:BoundField DataField="xxRenshu" HeaderText="学习人数" SortExpression="xxRenshu"ItemStyle-HorizontalAlign="Center"><ItemStyle HorizontalAlign="Center"></ItemStyle></asp:BoundField><asp:BoundField DataField="wcRenshu" HeaderText="完成人数" SortExpression="wcRenshu"ItemStyle-HorizontalAlign="Center"><ItemStyle HorizontalAlign="Center"></ItemStyle></asp:BoundField></Columns></asp:GridView>

二、后台代码

首先写sousuo.aspx.cs页面代码

要实现搜索功能,我们的逻辑要清晰。逻辑如下:在textbox里面输入关键词,点击搜索按钮,运行搜索按钮里面的代码,读取textbox里面的数据传递到搜索页面(sousuo.aspx)。

找一个东西保存传递过来的数据。

TextBoxsearch2.Text = Session["guanjianci"].ToString();
                Session.Remove("guanjianci");

运行bindData()显示数据。

public void BindData(){DataSet dsWeikecheng = new DataSet();//新建一个叫做ds的dataset实例,用于存放从数据库中读取的数据。StringBuilder strWhere = new StringBuilder();//新建一个strWhere 语句。就相当于string的高级版,操作多个字符串的时候使用,效率比string高if (TextBoxsearch2.Text.Trim() != "")
//trim,一个string类特有的属性(方法),使得去掉文本框中两边输入的空格只剩下输入的字符或数字{strWhere.AppendFormat("kcBiaoti like '%{0}%' or kcLeixing like '%{0}%'", TextBoxsearch2.Text.Trim());
//AppendFormat是使用类似String.Format方式追加具备一定格式的字符串。Append是直接添加字符。dsWeikecheng = bll.GetList(strWhere.ToString());
//将strWhere这个实例字符串语句传递到已经被实例化的bll层的GetList方法里面。获得一个实例化过的真真正正的datasetGridView1.DataSource = dsWeikecheng;
//gridView里面的数据源从哪里来呢,就从一个实例化过的真真正正的dataset里来,它的名字叫做ds.
//数据源已经有了,但是还没有绑定啊,那还不赶紧绑定啊。GridView1.DataBind();
//将数据源绑定到在designer.cs里面声明过的aspxGridView 控件中。没有?赶紧在你要显示的页面里面建一个啊。           }else{ltishi.Visible = true;//不要理他吧。}}

这个时候你会发现一些错误,不如bll不存在啊、getlist()不存在啊

于是你需要新建一个BLL实例, helios.BLL.sousuo bll = new helios.BLL.sousuo();在pageload()前面。

接下来去BLL层写BLL层里的代码

        public DataSet GetList(string strWhere)//将从UI传过来的StrWhere传递到GetList里面{return dal.GetList(strWhere);//将传过来的strWhere传递到dal层里面,}/// <summary>/// 得到一个对象实体。需要在Dal层中,设置一个GetModel的方法。/// </summary>public helios.Model.sousuo GetModel(int kechengID){return dal.GetModel(kechengID);}

然后你又发现DAL还没建立起来呢,于是加上

       private readonly helios.DAL.sousuo dal = new helios.DAL.sousuo();

接下来就是去DAL层

       /// <summary>/// 获得数据列表/// </summary>public DataSet GetList(string strWhere)//将从BLL层传过来strWhere放到GetList里面跑一圈。{StringBuilder strSql=new StringBuilder();strSql.Append("select kechengID,kcLeixing,kcBiaoti,kcJieshao,scShijian,kcFengmianURL,dianzanshu,beicaishu,liulanshu,xxRenshu,wcRenshu ");strSql.Append(" FROM Lcts ");if(strWhere.Trim()!=""){strSql.Append(" where "+strWhere);//得到一个完整的sql查询语句——strSQL语句,用于查询数据库}return DbHelperSQL.Query(strSql.ToString());//执行查询语句,返回DataSet,也就是到此为止,}/// <summary>/// 得到一个对象实体。用于BLL得到一个实体对象/// </summary>public helios.Model.Controls.header GetModel(int kechengID){StringBuilder strSql = new StringBuilder();//用来对很多字符串进行操作,减少内存占用量。strSql.Append("select  top 1 kechengID,kcLeixing,kcBiaoti,kcJieshao,kcFengmianURL,dianzanshu,beicaishu,liulanshu,xxRenshu,wcRenshu from Lcts ");//添加字符串strSql.Append(" where kechengID=@kechengID");//添加字符串SqlParameter[] parameters = {new SqlParameter("@kechengID", SqlDbType.Int,4)};//sqlparameter表示Sqlcommond的参数,也可以是它到 DataSet 列的映射parameters[0].Value = kechengID;helios.Model.Controls.header model = new helios.Model.Controls.header();//实例化一个header模型DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);//它是从数据源中检索到的数据在内存中的缓存。新建一个这样的缓存实例。 DataSet 由一组 DataTable 对象组成 // DataTable 是 ADO.NET 库中的核心对象。 其他使用 DataTable 的对象包括 DataSet 和 DataView。 if (ds.Tables[0].Rows.Count > 0){return DataRowToModel(ds.Tables[0].Rows[0]);}else{return null;}}/// <summary>/// 得到一个对象实体,这个实体对象用于GetModel实体对象里面。/// </summary>public helios.Model.Controls.header DataRowToModel(DataRow row){helios.Model.Controls.header model = new helios.Model.Controls.header();if (row != null){if (row["kechengID"] != null && row["kechengID"].ToString() != ""){model.kechengID = int.Parse(row["kechengID"].ToString());}if (row["kcLeixing"] != null){model.kcLeixing = row["kcLeixing"].ToString();}if (row["kcBiaoti"] != null){model.kcBiaoti = row["kcBiaoti"].ToString();}if (row["kcJieshao"] != null){model.kcJieshao = row["kcJieshao"].ToString();}//if(row["scShijian"]!=null && row["scShijian"].ToString()!="")//{//    model.scShijian=DateTime.Parse(row["scShijian"].ToString());//}if (row["kcFengmianURL"] != null){model.kcFengmianURL = row["kcFengmianURL"].ToString();}if (row["dianzanshu"] != null && row["dianzanshu"].ToString() != ""){model.dianzanshu = int.Parse(row["dianzanshu"].ToString());}if (row["beicaishu"] != null && row["beicaishu"].ToString() != ""){model.beicaishu = int.Parse(row["beicaishu"].ToString());}if (row["liulanshu"] != null && row["liulanshu"].ToString() != ""){model.liulanshu = int.Parse(row["liulanshu"].ToString());}if (row["xxRenshu"] != null && row["xxRenshu"].ToString() != ""){model.xxRenshu = int.Parse(row["xxRenshu"].ToString());}if (row["wcRenshu"] != null && row["wcRenshu"].ToString() != ""){model.wcRenshu = int.Parse(row["wcRenshu"].ToString());}}return model;}

至此BLL层不会出现错误了

但是DAL层又出现了错误了,因为没有建立Model实例啊,于是我们只能

去Model层探险咯

        #region Modelprivate int _kechengid;private string _kcleixing;private string _kcbiaoti;private string _kcjieshao;private string _kcbiaoqian;private DateTime _scshijian;private string _kcfengmianurl = "~/images/avart.jpg";private int? _dianzanshu = 0;private int? _beicaishu = 0;private int? _liulanshu = 0;private int? _xxrenshu = 0;private int? _wcrenshu = 0;/// <summary>/// /// </summary>public int kechengID{set { _kechengid = value; }get { return _kechengid; }}/// <summary>/// /// </summary>public string kcLeixing{set { _kcleixing = value; }get { return _kcleixing; }}/// <summary>/// /// </summary>public string kcBiaoti{set { _kcbiaoti = value; }get { return _kcbiaoti; }}/// <summary>/// /// </summary>public string kcJieshao{set { _kcjieshao = value; }get { return _kcjieshao; }}/// <summary>/// /// </summary>public string kcBiaoqian{set { _kcbiaoqian = value; }get { return _kcbiaoqian; }}/// <summary>/// /// </summary>public DateTime scShijian{set { _scshijian = value; }get { return _scshijian; }}/// <summary>/// /// </summary>public string kcFengmianURL{set { _kcfengmianurl = value; }get { return _kcfengmianurl; }}/// <summary>/// /// </summary>public int? dianzanshu{set { _dianzanshu = value; }get { return _dianzanshu; }}/// <summary>/// /// </summary>public int? beicaishu{set { _beicaishu = value; }get { return _beicaishu; }}/// <summary>/// /// </summary>public int? liulanshu{set { _liulanshu = value; }get { return _liulanshu; }}/// <summary>/// /// </summary>public int? xxRenshu{set { _xxrenshu = value; }get { return _xxrenshu; }}/// <summary>/// /// </summary>public int? wcRenshu{set { _wcrenshu = value; }get { return _wcrenshu; }}#endregion Model

不就是定义很多属性嘛。谁不会啊?小李子摆摆手。

于是我们就可以得到可爱的搜索功能了。

本文针对组员使用,略过很多小细节,如有疑问请提出。初来乍到,文章有认识错误的地方,请指教!谢谢!

【三层架构】搜索模块相关推荐

  1. 镇江php开发,myweb 我的家乡镇江,web技术开发的网站,三层架构,5大模块设计 WEB(ASP,PHP,...) 238万源代码下载- www.pudn.com...

    文件名称: myweb下载 收藏√  [ 5  4  3  2  1 ] 开发工具: HTML 文件大小: 8226 KB 上传时间: 2015-04-11 下载次数: 0 提 供 者: min 详细 ...

  2. ASP.NET典型三层架构企业级医药行业ERP系统实战(8大模块22个子系统,价值3000万)

    ASP.NET典型三层架构企业级医药行业ERP系统实战(8大模块22个子系统,价值3000万) 课程讲师:Tiger     课程分类:.net         适合人群:高级       课时数量: ...

  3. java电商商品搜索_Java生鲜电商平台-搜索模块的设计与架构

    说明:搜索模块针对的是买家用户,在找菜品找的很费劲下的一种查询方面.目前也是快速的检索商品. 对于移动端的APP买家用户而言,要求的速度在3秒内完成.支持模糊查询,由于业务实战表面,整个搜索频率不到1 ...

  4. 电商平台-搜索模块的设计与架构

    说明:搜索模块针对的是买家用户,在找菜品找的很费劲下的一种查询方面.目前也是快速的检索商品. 对于移动端的APP买家用户而言,要求的速度在3秒内完成.支持模糊查询,由于业务实战表面,整个搜索频率不到1 ...

  5. 在winform中使用三层架构学习总结

    Winform 三层架构小例子 http://www.cnblogs.com/jacky73/archive/2009/09/01/1558083.html 在web开发中常常用到工厂模式三层架构,现 ...

  6. 还在搞三层架构?了解下 DDD 分层架构的三种模式吧 !

    来源:jianshu.com/p/a775836c7e25 引言 在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和分层架构的相关知识. DDD DDD(Domain DrivenDesign ...

  7. ASP.NET 三层架构技术 人力资源管理系统项目HR (深入WebServic

    白菜价, 想要的联系QQ:867635458,非诚勿扰! ASP.NET MVC Linq 技术  企业级通用OA系统  全程开发 大型企业级别OA项目实战全新上线啦!本项目由小孔子讲师全程录制.小孔 ...

  8. ASP.NET 权限管理 页面静态化 OA系统培训 三层架构

    白菜价, 想要的联系QQ:867635458,非诚勿扰! ASP.NET MVC Linq 技术  企业级通用OA系统  全程开发 大型企业级别OA项目实战全新上线啦!本项目由小孔子讲师全程录制.小孔 ...

  9. spring struts2 mybatis框架学习总结(mvc三层架构)

    spring struts2 mybatis框架学习总结(mvc三层架构) ssi的框架主要是由struts2,spring以及ibatis组成,他们负责各层之间的交互与协作,从而实现整个web端的功 ...

  10. 神经架构搜索在视频理解中研究进展的综述

    作者 | Michael S. Ryoo 研究员与 AJ Piergiovanni 学生研究员(Google 机器人团队) 来源 | TensorFlow(ID:TensorFlow_official ...

最新文章

  1. 给TreeView控件绑定数据
  2. 18 Context与组合的应用场景与使用问题
  3. closewait一直不释放_机床为什么要释放应力?怎么释放应力才好?
  4. OpenShift 4 - Fedora CoreOS (4) - 用 Ignition 定制 CoreOS 的网络/存储等配置
  5. 七策定纲存储之道 宏杉科技专注创新勇突破
  6. Keil 5模块化编程详细步骤
  7. html5校园生活,校园日常生活日记(精选12篇)
  8. 初二数学作业能用计算机算吗,很多小学生在做数学作业的时候用计算器,这样对吗?...
  9. 埃及分数c语言实训报告,C语言实例 将真分数分解为埃及分数
  10. 从头开始学Redisson--------限流器
  11. Jedis 使用入门
  12. JAVA性能优化,让程序更快更稳定
  13. Linux 如何添加一个 Swap 文件
  14. 如何把flv转换成mp3格式 音频转换器哪个好
  15. halcon机器视觉软件系统框架源码visi onpro
  16. 如何添加新行到表格的最上面(困扰很久的一个问题)(转载)
  17. iPhoneX无导航栏页面适配
  18. 银河麒麟服务器ZYJ操作系统,文件储存inode节点占用根目录/空间满了解决办法
  19. mac 终端命令行自动补全并且忽略大小写
  20. python无法正常启动0xc000007b_(完美解决)应用程序无法正常启动(0xc000007b),请单击确定关闭应用程序的解决方案_来者即是客,我们共同成长-CSDN博客...

热门文章

  1. python3 模板库_3 个 Python 模板库比较-阿里云开发者社区
  2. dealunay triangulation 之 自己动手丰衣足食
  3. 手把手教你玩转Vue
  4. mysql rank函数_Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
  5. 人工神经网络的应用实例,神经网络技术及其应用
  6. 霍夫变换探测直线(HT最初版)
  7. Unity程序在VR一体机(Android)上卡死(闪退)后怎么办?——用adb查看android上某Unity app的debug信息
  8. 计算机ata考试教案,ata教案.docx
  9. Java 接受键盘输入数据的方法
  10. C语言读取FAT32分区文件簇链