Linq
文章平均质量分 76
mane_yao
一直在学习,从来没收获!
展开
-
linq中文教程(二)
What‘s LINQ? Language Integrated Query 是也。说得再明白一些,这是编程语言的一种新特性,能够将数据查询语句集成到编程语言中。目前,LINQ支持的语言有C# 和 VB。 为啥会有LINQ,主要还是因为现在的数据格式越来越多,数据库、XML、数组、哈希表……每一种都有自己操作数据的方式,学起来费事费力。于是,就有了LINQ诞生的理由——以一种统一的方转载 2010-05-21 08:49:00 · 347 阅读 · 0 评论 -
linq中文教程(十一)
简易留言簿 现在,我们就可以使用Linq to sql完成简易留言簿了。实现以下功能:· 发表留言(增) · 查看留言(查) ·转载 2010-05-21 08:53:00 · 531 阅读 · 0 评论 -
linq中文教程(十六)
分组 描述:根据顾客的国家分组,查询顾客数大于5的国家名和顾客数 查询句法: var 一般分组 = from c in ctx.Customers group c by c.Country into g where g.Count() > 5 orderby g.Count() descending select new { 国家转载 2010-05-21 08:55:00 · 396 阅读 · 0 评论 -
linq中文教程(十七)
描述:按照是否超重条件分组,分别查询订单数量 查询句法: var 按照条件分组 = from o in ctx.Orders group o by new { 条件 = o.Freight > 100 } into g select new { 数量 = g.Count(), 是否超重 = g.Key.条件 ? "是" : "否" };转载 2010-05-21 08:56:00 · 295 阅读 · 0 评论 -
linq中文教程(二十)
普通存储过程 首先在查询分析器运行下面的代码来创建一个存储过程: create proc sp_singleresultset as set nocount on select * from customers 然后打开IDE的服务器资源管理器,之前我们从表中拖动表到dbml设计视图,这次我们从存储过程中找到刚才创建的存储转载 2010-05-21 08:57:00 · 323 阅读 · 0 评论 -
linq中文教程(七)
DataContext DataContext类型(数据上下文)是System.Data.Linq命名空间下的重要类型,用于把查询句法翻译成SQL语句,以及把数据从数据库返回给调用方和把实体的修改写入数据库。· DataContext提供了以下一些使用的功能: ·转载 2010-05-21 08:51:00 · 431 阅读 · 0 评论 -
linq中文教程(九)
创建数据库testContext ctx = new testContext("server=xxx;database=testdb;uid=xxx;pwd=xxx"); ctx.CreateDatabase(); [Table(Name = "test")] public class test { [Column(IsPrimaryKey = true, IsD转载 2010-05-21 08:52:00 · 501 阅读 · 0 评论 -
linq中文教程(十二)
前面创建Linq to sql Classes的时候我们输入名字GuestBook,系统就为我们自动创建了GuestBookDataContext(你也可以在GuestBook.Designer.cs中找到类定义)。在绑定的时候我们使用查询句法查询留言表中所有留言,按照发表时间倒序(天哪?这是数据访问吗?好像仅仅定义了一句SQL啊)。在发表留言按钮中,我们为一个tbGuestBook赋值,然后把它转载 2010-05-21 08:54:00 · 369 阅读 · 0 评论 -
linq中文教程(十三)
运行效果如下图: 在这里,我们通过Single方法获取一条记录,也就是一个tbGuestBook实例,更新了一些属性后保存也就完成了改这个操作。删除操作更简单,只需要从表中移除对象。你是不是觉得好像不是在操作数据库,像在操作内存中的对象。 由于写了日志,看看改和删操作会是怎么样的SQL?UPDATE [dbo].[tbGuestBook转载 2010-05-21 08:54:00 · 430 阅读 · 0 评论 -
linq中文教程(十)
使用DbDataReader数据源using System.Data.SqlClient; var conn = new SqlConnection("server=xxx;database=Northwind;uid=xxx;pwd=xxx"); var ctx = new DataContext(conn); var cmd = new SqlCommand("se转载 2010-05-21 08:53:00 · 334 阅读 · 0 评论 -
linq中文教程(六)
前面的示例分别是1个参数的例子,下面结合扩展方法来一个复杂的例子: public delegate int mydg(int a, int b); public static class LambdaTest { public static int oper(this int a, int b, mydg dg) { return dg(a, b转载 2010-05-21 08:51:00 · 289 阅读 · 0 评论 -
linq中文教程(十八)
描述:查询城市是A打头和城市包含A的顾客并按照顾客名字排序,相同的顾客信息不会过滤 查询句法: var 连接并且不过滤相同项 = (from c in ctx.Customers where c.City.Contains("A") select c).Concat (from c in ctx.Customers where c.ContactName.转载 2010-05-21 08:56:00 · 359 阅读 · 0 评论 -
linq中文教程(三)
例子虽然简单,确能从中看出LINQ的一些端倪。首先,var是什么东东? 看起来,有点像javascript里面的弱类型的变量声明。但是,C#是强类型的,尽管你用var来声明,编译器还是可以根据上下文推倒出它当前的类型。比如这个例子里面,result就是IEnumerable 类型的。在这里面,写IEnumerable和写var是一样效果的,显然,var会简单得多。你不用考虑数据操作的返回值是转载 2010-05-21 08:50:00 · 402 阅读 · 0 评论 -
linq中文教程(四)
class MyClass { public string MethodName { get; set; } public int Overload { get; set; } } class Program { MyClass mc = new MyClass { MethodName = "aaa", Overload = 2 }; } 大括号里面的叫类初转载 2010-05-21 08:50:00 · 464 阅读 · 0 评论 -
linq中文教程(五)
自动属性 public class Person { public string username { get; protected set; } public int age { get; set; } public Person() { this.username = "zhuye"; } } Person p = new P转载 2010-05-21 08:50:00 · 294 阅读 · 0 评论 -
linq中文教程(八)
DataContext其实封装了很多实用的功能,下面一一介绍。日志功能using System.IO; NorthwindDataContext ctx = new NorthwindDataContext("server=xxx;database=Northwind;uid=xxx;pwd=xxx"); StreamWriter sw = new Stream转载 2010-05-21 08:52:00 · 384 阅读 · 0 评论 -
linq中文教程(十九)
子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c in ctx.Customers where (from o in ctx.Orders group o by o.CustomerID into o where o.Count() > 5 select o.Key).Contains(c.CustomerI转载 2010-05-21 08:57:00 · 299 阅读 · 0 评论 -
linq中文教程(二十一)
带参数的存储过程 创建如下存储过程: create proc [dbo].[sp_withparameter] @customerid nchar(5), @rowcount int output as set nocount on set @rowcount = (select count(*) from customers where转载 2010-05-21 08:58:00 · 377 阅读 · 0 评论 -
linq中文教程(二十二)
然后使用下面的代码测试: var 多结果集存储过程 = ctx.sp_multiresultset(); var Customers = 多结果集存储过程.GetResult(); var Employees = 多结果集存储过程.GetResult();GridView1.DataSource = from emp in Employees where转载 2010-05-21 08:58:00 · 430 阅读 · 0 评论 -
linq中文教程(十四)
查询句法: var 构建匿名类型2 = from emp in ctx.Employees select new { 姓名 = emp.LastName + emp.FirstName, 雇用年 = emp.HireDate.Value.Year }; 对应SQL: SELECT [t0]转载 2010-05-21 08:54:00 · 357 阅读 · 0 评论 -
linq中文教程(十五)
描述:查询顾客的国家、城市和订单数信息,要求国家是法国并且订单数大于5 查询句法: var 多条件 = from c in ctx.Customers where c.Country == "France" && c.Orders.Count > 5 select new { 国家 = c.Country, 城市 = c.City, 订转载 2010-05-21 08:55:00 · 405 阅读 · 0 评论