- 浏览: 436835 次
- 性别:
- 来自: 唐山
文章分类
最新评论
-
hautbbs:
谢谢分享!
ASP.NET 导出Excel 和csv -
hautbbs:
感谢分享!
ASP.NET 导出Excel乱码的终极解决 -
wyf:
zcl920 写道只能说 看不懂。要发就发全 取一段出来 有什 ...
图片上绘制文字换行处理 -
zcl920:
只能说 看不懂。要发就发全 取一段出来 有什么用。
图片上绘制文字换行处理 -
380086154:
有用,谢谢。
js比较日期
void ShowData() { using (DBDataContext db = new DBDataContext(Database.ConnectionString)) { Expression<Func<T_Bargin, bool>> expr = n => GetCondition(n); var _query = db.T_Bargins.Where<T_Bargin>(expr.Compile()).Select(b => new { b.F_Money, b.F_Name }); foreach (var item in _query) { Response.Write(item.F_Name + " " + item.F_Money.ToString() + "<br/>"); } } } //得到合同金额大于6000,或合同名称中包含"江华"字的条件 private bool GetCondition(T_Bargin _Table) { bool _result = false; decimal _MinMoney = 6000; if (_MinMoney > 0) { _result |= _Table.F_Money >= _MinMoney; } string _Name = "江华"; if (!String.IsNullOrEmpty(_Name)) { _result |= _Table.F_Name.Contains(_Name); } return _result; }借助老外写的一个扩展表达式的类,可以把上篇中的代码写得更优雅
这是PredicateBuilder的源文件
public static class PredicateBuilder
{
public static Expression<Func<T, bool>> True<T> () { return f => true; }
public static Expression<Func<T, bool>> False<T> () { return f => false; }
public static Expression<Func<T, bool>> Or<T> (this Expression<Func<T, bool>> expr1,
Expression<Func<T, bool>> expr2)
{
var invokedExpr = Expression.Invoke (expr2, expr1.Parameters.Cast<Expression> ());
return Expression.Lambda<Func<T, bool>>
(Expression.Or (expr1.Body, invokedExpr), expr1.Parameters);
}
public static Expression<Func<T, bool>> And<T> (this Expression<Func<T, bool>> expr1,
Expression<Func<T, bool>> expr2)
{
var invokedExpr = Expression.Invoke (expr2, expr1.Parameters.Cast<Expression> ());
return Expression.Lambda<Func<T, bool>>
(Expression.And (expr1.Body, invokedExpr), expr1.Parameters);
}
}
下面是使用示例 :
List<Product> GetProductsByAND(params string[] keywords) { DBDataContext db = new DBDataContext(Database.ConnectionString); IQueryable<Product> query = db.Products; foreach (string keyword in keywords) { string temp = keyword; query = query.Where(p => p.Description.Contains(keyword)); } //翻译后的sql语句: //SELECT [t0].[ID], [t0].[Name], [t0].[Description] //FROM [dbo].[Product] AS [t0] //WHERE ([t0].[Description] LIKE '%手机%') AND ([t0].[Description] LIKE '%6111%') return query.ToList(); } List<Product> GetProductsByOR(params string[] keywords) { DBDataContext db = new DBDataContext(Database.ConnectionString); var predicate = PredicateBuilder.False<Product>(); foreach (string keyword in keywords) { string temp = keyword; predicate = predicate.Or(p => p.Description.Contains(temp)); } var query = db.Products.Where(predicate); //翻译后的sql语句: //SELECT [t0].[ID], [t0].[Name], [t0].[Description] //FROM [dbo].[Product] AS [t0] //WHERE ([t0].[Description] LIKE '%6111%') OR ([t0].[Description] LIKE '%2350%') return query.ToList(); } void ShowData() { //var _products = GetProductsByOR("6111", "2350"); //Repeater1.DataSource = _products; //Repeater1.DataBind(); var predicate = PredicateBuilder.True<Product>(); string _name = "6111"; if (!string.IsNullOrEmpty(_name)) { predicate = predicate.And(p => p.Name.Contains(_name)); } string _description = "长虹"; if (!string.IsNullOrEmpty(_description)) { predicate = predicate.And(p => p.Description.Contains(_description)); } using (DBDataContext db = new DBDataContext(Database.ConnectionString)) { var _Products = db.Products.Where(predicate); Repeater1.DataSource = _Products; Repeater1.DataBind(); } }来自:http://www.cnblogs.com/fireplume/archive/2008/04/27/1172683.html
发表评论
-
登录时记住用户名密码的实现方式
2019-06-12 15:11 3039登录的时候记住用户 ... -
CAS 实现单点登录 .NET MVC
2016-05-24 17:14 1134http://www.cnblogs.com/woxpp/p ... -
.NET开发邮件发送功能的全面教程(含邮件组件源码)
2015-03-31 09:43 1174原文地址:http://www.cnblogs.com/he ... -
开发Web组合
2015-01-04 11:39 6151、数据库操作 ORM-Dapper 2、前台界面布局采 ... -
基于 Bootstrap 构建的网站
2014-12-14 14:12 640文档,下载地址:http://v3.bootcss.com ... -
iis8 默认不支持svc解决方法
2014-09-18 18:57 782以下内容对于使用WIN2012 部署V9的时候使用。 ... -
C# 连接Oracle(利用ODP.net,不安装oracle客户端)
2014-07-11 09:37 1698C# 连接Oracle(利用ODP.net,不安装oracl ... -
C# Attribute 特性,过期特性
2014-05-27 15:18 1852通过下列过程将属性应用到代码元素。 通过从 .NE ... -
.NET画实时直方图
2011-12-30 09:37 923using System; using System.Col ... -
设置combobx选中项
2011-12-21 15:20 1036cbRole.SelectedIndex = cbRole.I ... -
文档树状结构化目录管理方法
2011-12-20 09:50 2202本文适用于附件(各类文档、图片和压缩包等,下同)比较多的 ... -
.StringTemplate替换模板
2011-11-03 10:19 1252官方下载 www.StringTemplate. ... -
WCF-IErrorHandler
2011-10-11 16:30 1058使用 IErrorHandler 接口,我们可以更深入地 ... -
ADODB.Stream instead of Scripting.FileSystemObject.
2011-07-04 08:55 1249In a Silverlight 4 OOB App (eve ... -
Scripting.FileSystemObject对象的详细技巧指南
2011-07-03 23:39 1052Scripting.FileSystemObject对象的 ... -
Stream 和 byte[] 之间的转换
2011-07-02 16:52 1078/* - - - - - - - - - - - - - ... -
常用正则表达式
2011-06-15 20:17 798正则表达式用于字符 ... -
DynamicMethod 类
2011-05-11 22:51 1165public delegate String MyMetho ... -
一个通用的快速反射方法(A General Fast Method Invoker)
2011-04-13 22:01 1530普通反射方法 MethodInfo methodIn ... -
C#操作IIS(转)可以写一个工具自己配置网站
2011-03-24 21:08 2271using System; using System.Dir ...
相关推荐
浅谈Linq to sql 的多表关联与动态条件查询 Linq to sql 是一种强大的数据查询语言,它可以帮助开发者快速、高效地访问和操作数据库数据。在本文中,我们将讨论 Linq to sql 的多表关联和动态条件查询这两个重要的...
实现linq多个查询条件连接功能(支持linq to sql 和linq to entity)。 按多个指定属性排序功能。 不同参数的lamdba表达式条件间的转换功能。
然而,LINQ to SQL的功能远不止这些,它还支持更复杂的查询、事务处理、存储过程调用等。虽然LINQ to SQL在.NET框架的最新版本中已被Entity Framework所取代,但了解它的基本工作原理对于理解ORM(对象关系映射)的...
3. 查询数据库:使用LINQ to SQL,你可以编写查询表达式来检索、过滤、排序和分组数据库记录,这些查询会被编译成T-SQL并发送到服务器执行。 4. 操作实体: LINQ to SQL支持对象状态管理,可以跟踪对象的变化,并在...
- **Linq To Sql动态查询**:Linq To Sql提供了强大的动态查询能力,允许开发者使用对象来构建查询条件,从而避免了SQL字符串拼接的问题,同时也增加了代码的可读性和安全性。 #### 7. Linq To Sql进阶系列(七)...
**LINQ to SQL** 是 .NET Framework 中的一个技术,它允许开发者使用 C# 或 VB.NET 语言的查询表达式语法来操作数据库。本手册详细介绍了使用 LINQ to SQL 进行数据查询、操作和更新的各种方法,涵盖了从基础到高级...
LINQ to SQL 提供了一种强大的方式来处理数据库查询。通过使用类似于编程语言的语法结构,开发人员可以更高效地处理数据库操作,同时减少编写传统SQL语句的复杂性。掌握LINQ to SQL 的各种操作符对于任何希望利用...
【LINQ to SQL 高级查询详解】 LINQ (Language Integrated Query) 是.NET框架中的一种技术,它允许程序员使用一种直观、类似SQL的语法在代码中处理数据。LINQ to SQL 是 LINQ 的一个实现,专门用于与关系数据库进行...
2. **数据上下文**:在Linq to SQL中,`DataContext`类是与数据库交互的关键,它封装了与数据库相关的操作,如创建表对象、执行查询等。 3. **匿名类型**:Linq查询结果可以返回新的匿名类型对象,无需预先定义具体...
动态查询是LINQ的一个关键特性,它允许我们根据条件动态地构建查询表达式。这与静态查询形成了对比,静态查询是在编译时确定的,并且可以被编译器优化。动态查询则是在运行时构建,其优点在于灵活性,但可能牺牲一些...
LINQ (Language Integrated Query) to SQL 是.NET框架中的一项技术,它允许开发人员使用C#或Visual Basic等语言的查询语法直接对SQL Server数据库进行操作,简化了数据访问层的编程。这项技术将数据库操作与代码更...
- **局限性**:虽然LINQ to SQL在简单场景下非常方便,但对于复杂查询和支持多数据库的情况,则显得力不从心。 - **替代方案**:对于更复杂的数据库操作需求,可以考虑使用Entity Framework或NHibernate等其他ORM...
在LINQ to SQL中,动态查询可能涉及使用dynamic关键字进行操作,以实现更灵活的查询构建。 3. **LinqToSqlExtensions**:这是 LINQ to SQL 的扩展库,包含一系列扩展方法,用于扩展默认的 LINQ to SQL 功能,比如...
LINQ to SQL语句之Join和Order By部分代码 语句描述:这个例子在From子句中使用外键导航筛选在西雅图的雇员,同时列出其所在地区。这条生成SQL语句为: SELECT [t0].[FirstName], [t0].[LastName], [t2]....
- **联接查询(JOIN)**:在Linq To Sql中可以方便地实现多表联接,支持内连接、左连接、右连接和全连接。 - **分组查询(GROUP BY)**:用于按一个或多个键对数据进行分组,并可进行聚合操作,如Sum、Average、...
本文将重点讲解 LINQ to SQL 中的 `Where` 和 `Select/Distinct` 操作符的使用。 ### 一、`Where` 操作符 `Where` 操作符用于过滤数据,其功能类似于 SQL 中的 `WHERE` 子句。它可以接受不同的形式: 1. **简单...
- 虽然LINQ to SQL提供了与SQL类似的功能,但并非所有的SQL查询构造都能被翻译成LINQ表达式。在处理复杂的SQL查询时,可能需要使用`ExecuteQuery`方法来执行自定义的SQL语句。 8. **异常处理** - 在执行排序时,...
**LINQ to SQL** 是 .NET Framework 中的一种技术,它允许开发者使用.NET语言(如C#或VB.NET)直接对SQL数据库进行查询,无需编写大量的SQL语句。这个框架是微软在.NET 3.5 SP1版本中引入的,旨在简化数据访问层的...
总结来说,LINQ to SQL是.NET开发中强大的数据库操作工具,结合Orcas引入的Lambda表达式,使得数据查询和操作更加直观和高效。通过深入学习和实践,开发者可以更好地掌握这一技术,从而提升项目的开发质量和效率。...
【LINQ to SQL 多条件动态查询】 在.NET框架中,LINQ to SQL是一个强大的ORM(Object-Relational Mapping)工具,它允许开发人员使用C#或VB.NET的查询语法来操作SQL数据库。然而,实现多条件动态查询时,可能会遇到...