当前位置: 代码迷 >> ASP.NET >> 关于做高级查询的有关问题
  详细解决方案

关于做高级查询的有关问题

热度:5548   发布时间:2013-02-25 00:00:00.0
关于做高级查询的问题
我在做项目的时候,遇到了这样的问题,就是有六个可以供输入查询条件的文本框,这六个文本框只要输入的条件多于一个,就可以查询,现在问题时,我不知道用户输入了哪几个条件,这样该怎么查询数据库?我想用linq做,该怎么办?

------解决方案--------------------------------------------------------
我在想先用一个条件进行查询,然后对查询的结果用第二个条件再次进行查询,依次这样?
并不感觉这样效率会很高。
------解决方案--------------------------------------------------------
C# code
             StringBuilder sb = new StringBuilder();             if (!string.IsNullOrEmpty(tid))            {                sb.Append(" and typeid=" + tid);            }            if (!string.IsNullOrEmpty(cname))            {                sb.Append(" and title like '%" + cname + "%'");                           }            Int64 total = 0;            string TableName = " yjfw_info ";            string ReFieldsStr = " id,InfoID,title,ifoLaiyuan,fabutime,shzt,typeid,tjzt,bzInt";            string OrderString = "  bzInt desc,ID desc ";            string StrWhere = " 1=1" + sb.ToString();            DataTable dt = pub.FindPageList(out total, PageIndex, 10, StrWhere, TableName, ReFieldsStr, OrderString, "ID");            RepList.DataSource = dt.DefaultView;            RepList.DataBind();
------解决方案--------------------------------------------------------
贴点代码,楼主参考
------解决方案--------------------------------------------------------
C# code
        public IQueryable<Class> Query(Class model)        {            var query = db.Class.AsQueryable();            if (model != null)            {                if (!string.IsNullOrEmpty(model.LinkText))                {                    query = query.Where(a=>a.LinkText.Contains(model.LinkText));                }                if (0 != model.LocationID)                {                    query = query.Where(a=>a.LocationID == model.LocationID);                }                if (null != model.StartDate)                {                    query = query.Where(a=>a.StartDate >= model.StartDate);                }                if (null != model.EndDate)                {                    query = query.Where(a=>a.EndDate <= model.EndDate);                }                               query = query.Where(a => a.IsDelete == 0);            }            return query;        }
  相关解决方案