.NET中如何实现这种高级搜索?

使用SQL语句和不使用SQL语句的情况下分别如何实现这种搜索还有下面的这种如何实现... 使用SQL语句和不使用SQL语句的情况下分别如何实现这种搜索还有下面的这种如何实现 展开
 我来答
xuya011
推荐于2016-06-11
知道答主
回答量:5
采纳率:0%
帮助的人:2.7万
展开全部
  1. 底层的sql语句可以select * from 表where 1=1,比如这样的:

      public DataTable GetList(string w)
            {
                string sql = "select * from Scores where 1=1 "+w;
                return DbHelperSQL.Query(sql).Tables[0];
            }

  2. 前台页面可以写方法把他选中的搜索条件获取到:

     /// <summary>
        /// 获取搜索条件
        /// </summary>
        /// <returns></returns>
        public string GetStrWhere()
        {
            //筛选工号
            if (!string.IsNullOrEmpty(doce))
            {
                strWhere += " and UserName like '%" + doce + "%'";
            }
            //筛选姓名
            if (!string.IsNullOrEmpty(name))
            {
                strWhere += " and RealName like '%" + name + "%'";
            }
            //筛选部门
            if (!string.IsNullOrEmpty(dep))
            {
                strWhere += " and DepartmentName like '%" + dep + "%'";
            }
            //筛选时间
            if (!string.IsNullOrEmpty(startDate))
            {
                DateTime st = Convert.ToDateTime(Convert.ToDateTime(startDate).ToLongDateString());
                strWhere += " and BuyTime >= " + "'" + st + "'";
            }
            //筛选结束时间
            if (!string.IsNullOrEmpty(endDate))
            {
                DateTime end = Convert.ToDateTime((Convert.ToDateTime(endDate).AddDays(1).ToLongDateString()));
                strWhere += " and BuyTime <= " + "'" + end + "'";
            }

            //筛选状态
            if (ddlStatus != "-1")
            {

                strWhere += " and Status = " + "'" + ddlStatus + "'";

            }
            return strWhere;
        }

  3. 加载方法:

         if (!IsPostBack)
            {
                strWhere = GetStrWhere();
                GetList(strWhere);
            }

AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
说着笑着d午后
2014-01-21 · TA获得超过282个赞
知道小有建树答主
回答量:426
采纳率:0%
帮助的人:268万
展开全部
  1. 不用sql和用sql你说的是什么意思?数据库检索和内存数据集筛选?建议通过数据库来查询。

  2. 不管用不用sql,筛选的核心都是条件的拼接,所以如果通过sql语句直接查询的话,按照条件拼接查询就行了,如果使用linq to sql也是一样的道理,只是拼接的方式有点儿区别。

  3. 顺便说一说,如果你是不清楚怎么实现这样的功能操作的话,其实很简单,页面那些按钮、下拉选框、文本框,都是一些页面控件,用户点击“搜索”的时候,应该会提交表单(包含了这些控件的值)到服务器,服务器能接收到这些控件的具体值,再根据接收到的值做查询筛选就行了。

更多追问追答
追问
比如说用第三方框架(如Lucene.NET)可否实现
追答
当然可以实现你需要的功能,只是源码不一样而已,另外,因为涉及到搜索引擎了,所以就得注意下你的筛选数据的依据了,最好是能合理安排筛选条件提供合适的索引词汇。
既然用 Lucene.NET,分词之类的就不多说了,它也能实现传统的 and、or 之类的操作的,对照着来就行了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尔偶一下
2014-01-21 · 超过84用户采纳过TA的回答
知道小有建树答主
回答量:212
采纳率:100%
帮助的人:162万
展开全部
这个其实说白了也是比较简单的,比如你这类信息是通过一个表或者一个视图来实现的,那么你的前提条件必然是select * from 表/视图 而上面的多选条件则是根据表/视图来定义的一些字段属性,所以本质就是一个拼接sql语句的过程,比如你默认的sql可以写成 select * from 表/视图 where 1=1
这样的语句,后面的条件你可以判断是否勾选分别在原来的加上“ and 条件1=‘111’ ” 等等类似的。
不知道我理解你的意思还对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式