linq to sql 模糊查询
linq 模糊查询,查询的字段名不定,字段名我在下拉列表中选择,我选择哪个就对哪个字段进行模糊查询,
这样的查询语句怎么写啊
------解决方案--------------------模糊查询就要做的事比较多了。你看一下我写的linq 动态查询吧
http://user.qzone.qq.com/452591170/infocenter
------解决方案--------------------方法很多:
1.使用System.Linq.Dynamic
2.披着Linq的外衣拼接SQL语句
http://www.cnblogs.com/snowdream/archive/2008/07/18/1246308.html
------解决方案-------------------- //以Norhwind数据库为例
//假如查询CustomerID
Query(o => o.CustomerID.Contains("aaaa"));
//假如查询ShipAddress
Query(o => o.ShipAddress.Contains("aaaa"));
Console.ReadKey();
}
static List<l8r.Orders> Query(Func<l8r.Orders, bool> predicate)
{
return DbContent.Orders.Where(predicate).Select(o => o).ToList();
}
------解决方案--------------------if 判断 字段名,Contains 进行模糊
------解决方案--------------------以 Northwind 为例:
using (NorthwindDBDataContext northwind = new NorthwindDBDataContext(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString))
{
var productsInfo = from p in northwind.Products select p;
if (!string.IsNullOrEmpty(txtProductName.Text))
productsInfo = productsInfo.Where(p => p.ProductName.Contains(txtProductName.Text));
grvProductInfo.DataSource = productsInfo;
grvProductInfo.DataBind();
}
关键代码给出,使用时根据需求进一步修改。
------解决方案--------------------IEnumerable<Objects> fiterObjs = objs.Where(x => x.ObjectName!=null&&x.ObjectName.Contains(""));
构造一个查询及表达式树
Linq动态条件查询
------解决方案--------------------参考VS安装目录下的 \Samples\2052\CSharpSamples\LinqSamples,有一个工程叫“DynamicQuery”,然后看看 Program.cs 里面的代码,它可以用字符串的形式来查:Select("New(CompanyName as Name, Phone)"),就是说,你可以动态构造这个 select 返回值。
------解决方案--------------------跟你说个最简单的方法,放心这种方法最终也是生成一条SQL语句执行的
var query = from p in dc.TblTest select p;
if (conditon1) query = from p in query where ... select p;