Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

linq to sql中,如何解决多条件查询问题,答案,用表达式树!

来源:中文源码网    浏览:176 次    日期:2024-05-01 14:43:44
【下载文档:  linq to sql中,如何解决多条件查询问题,答案,用表达式树!.txt 】


linq to sql中,如何解决多条件查询问题,答案,用表达式树!
本篇适合于规模较小的数据量,对于大数据量,需要用另外的方式,见下一篇   首先,从网上搜,是必不可少的,大概了解了一下linq 多条件组合查询的方向,就开始动手了,首先,写一个委托的方法: 复制代码 代码如下: private bool GetCondition(FeedBack fb) { bool boolResult = true; int f_type = Int32.Parse(ddlFType.SelectedValue); int isClose = Int32.Parse(ddlIsClose.SelectedValue); int isTrue = Int32.Parse(ddlIsTrue.SelectedValue); string keyword = tbxKeyword.Text.FilterInjectStr(); if (f_type != 0) { boolResult &= fb.F_Type == f_type; } if (isClose != -1) { boolResult &= fb.IsClose == isClose; } if (isTrue != -1) { boolResult &= fb.IsTrue == isTrue; } if (!keyword.IsNullOrEmpty()) { boolResult &= fb.ContentInfo.IndexOf(keyword) > -1; } return boolResult; } 这里因为是做测试,我就全部把方法放在当前页面中了. 注意,此方法中的内容,可以根据实际情况进行改变,我这里做的是一个留言板的列表; 调用的方式,我这里列表是是绑定repeater控件的. 于是可以这样: 复制代码 代码如下: private void ListDataBind() { Expression> expr = n => GetCondition(n); List pageData = feedBacks.AllFeedBacks.Where(expr.Compile()).ToList(); FeedbackList.DataSource = pageData; FeedbackList.DataBind(); } 注意,FeedBack是我的linq to sql的数据源表的对象名称. 另外,网站搜的一些答案有错误,例如会把我的Expression>写成Expressionbool>>,NND,鄙视这些垃圾网站.还有写手. 希望各位初学者能从我的文章中获益!

相关内容