首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2012-04-13 
关于做高级查询的问题我在做项目的时候,遇到了这样的问题,就是有六个可以供输入查询条件的文本框,这六个文

关于做高级查询的问题
我在做项目的时候,遇到了这样的问题,就是有六个可以供输入查询条件的文本框,这六个文本框只要输入的条件多于一个,就可以查询,现在问题时,我不知道用户输入了哪几个条件,这样该怎么查询数据库?我想用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;        } 

热点排行