LINQ体验系列文章导航

LINQ体验系列文章导航

LINQ推荐资源

推荐一个大家学习和交流LINQ的地方,就是博客园的LINQ专题LINQ交流小组LINQ专题中整理了有关LINQ方方面面的入门、进阶、深入的文章;学习中遇到什么问题或者疑问也可以LINQ交流小组去提问,往往你会得到意想不到的收获哦。

LINQ专题:http://kb.cnblogs.com/zt/linq/

LINQ小组:http://space.cnblogs.com/group/linq/

导言 

在2007年11月19日,微软发布了Visual Studio 2008 和.NET 3.5。带来了很多新东西,比如ASP.NET3.5、LINQ、Silverlight、ASP.NET 3.5 Extensions等等,我们要跟紧着微软的步伐,很多的东西不得不从头开始学习了,LINQ体验系列是我在学习过程中记录下来的里程,在我的博客中分享,给大家一起学习Visual Studio 2008 和 .NET 3.5提供一个平台。

本系列共三部分,第一部分讲述了Visual Studio 2008新特性,第二部分介绍了C# 3.0新语言特性和改进。第三部分开始讲解LINQ,先整体介绍了LINQ,再从LINQ to SQL语句入手贯穿了LINQ的精髓。本文给出了本系列的导航。

第一部分:Visual Studio 2008新特性

导读:Visual Studio 2008的新特性,其包括.NET Framework 对重定向的支持;ASP.NET AJAX和JavaScript智能客户端支持;全新的Web开发新体验:Web设计器提供了分割视图编辑、嵌套母板页、以及强大的CSS编辑器集成;编程语言方面的改进和LINQ;浏览.NET Framework库源码;智能部署ClickOnce;.NET Framework 3.5 增强功能;集成对Office (VSTO)和Sharepoint 2007开发的支持;在Windows Server 2008, Windows Vista 和Microsoft Office 2007下最好的开发工具集;单元测试功能,所有的Visual Studio专业版本都支持单元测试功能等等。

LINQ体验(1)——Visual Studio 2008新特性

第二部分:C# 3.0新语言特性和改进

导读:总体来说,Visual Studio 2008和.NET 3.5是建立在.NET2.0核心的基础之上,C# 3.0新语言特性在.NET2.0基础上进行了改进,这些改进的功能可以大大简化我们编写程序。

C# 3.0新语言特性和改进包括:

  • 自动属性(Auto-Implemented Properties)
  • 隐含类型局部变量(Local Variable Type Inference)
  • 匿名类型(Anonymous Types)
  • 对象与集合初始化器(Object and Collection Initializers)
  • 扩展方法(Extension Methods)
  • Lambda表达式和Lambda表达式树 (Lambda Expression and Lambda Expression Trees)

LINQ体验(2)——C# 3.0新语言特性和改进(上篇)

LINQ体验(3)——C# 3.0新语言特性和改进(下篇)

第三部分:LINQ带来的编程体验

导读:语言集成查询 (LINQ) 是 Visual Studio 2008 和 .NET Framework 3.5 版中一项突破性的创新,它在对象领域和数据领域之间架起了一座桥梁。首先整体认识一下LINQ,然后从LINQ to SQL语句由基础到高级贯穿了LINQ的精髓。

LINQ简介

LINQ体验(4)——LINQ简介和LINQ to SQL语句之Where

LINQ to SQL语句基本查询操作部分

LINQ体验(5)——LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg

LINQ体验(6)——LINQ to SQL语句之Join和Order By

LINQ体验(7)——LINQ to SQL语句之Group By/Having和Exists/In/Any/All/Contains

LINQ体验(8)——LINQ to SQL语句之Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods

LINQ体验(9)——LINQ to SQL语句之Insert/Update/Delete操作

LINQ to SQL语句高级部分

LINQ体验(10)——LINQ to SQL语句之开放式并发控制和事务

LINQ体验(11)——LINQ to SQL语句之Null语义和String/DateTime方法

LINQ体验(12)——LINQ to SQL语句之对象标识和对象加载

LINQ体验(13)——LINQ to SQL语句之运算符转换和ADO.NET与LINQ to SQL

LINQ体验(14)——LINQ to SQL语句之存储过程

LINQ体验(15)——LINQ to SQL语句之用户定义函数

LINQ体验(16)——LINQ to SQL语句之DataContext

LINQ体验(17)——LINQ to SQL语句之动态查询

LINQ体验(18)——LINQ to SQL语句之视图和继承支持

LINQ学习工具

LINQPad :LINQPad 是一个很好的学习LINQ的工具,LINQPad 是完全免费的,无需安装,支持C# 3.0 和 Framework 3.5的全部功能

VLinq :Visual Linq Query Builder(LINQ可视化查询编辑器)作为Visual Studio 2008的一个插件,可以帮助我们在程序中创建LINQ to SQL查询表达式,支持C#和VB两种语言。

LINQ in Action 电子书:作者:Fabrice Marguerie, Steve Eichert, Jim Wooley 出版日期:2008年1月15日

结束语

花了时间把这个系列全部更新了,以适应新的模板,采用图文并茂形式全面介绍了LINQ to SQL 。通过这个系列,您可以迅速入门LINQ。


作者:李永京YJingLee's Blog
出处:http://lyj.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

Tag标签: LINQ,LINQ to SQL
posted @ 2008-03-25 00:05 李永京 阅读(53748) 评论(94)  编辑 收藏 网摘 所属分类: LINQ

  回复  引用  查看    
#1楼 2008-03-24 14:42 | 生鱼片      
博主这系列不错,值得收藏
  回复  引用  查看    
#2楼 [楼主]2008-03-24 14:46 | 李永京      
@生鱼片
呵呵!谢谢支持!

  回复  引用  查看    
#3楼 2008-03-24 14:58 | 破曉之陽      
支持。。。加油。。。
  回复  引用  查看    
#4楼 [楼主]2008-03-24 15:11 | 李永京      
@破曉之陽
谢谢支持!还有4,5篇了,抓紧时间弄个全集。

  回复  引用    
#5楼 2008-03-24 15:12 | xiong [未注册用户]
强烈支持!!!! 谢谢!!!
  回复  引用  查看    
#6楼 [楼主]2008-03-24 15:13 | 李永京      
@xiong
o(∩_∩)o...,谢谢支持!

  回复  引用  查看    
#7楼 2008-03-24 20:47 | ilovedotnet      
哈哈,博主这个系列我已经全都收藏了!
  回复  引用  查看    
#8楼 [楼主]2008-03-24 21:08 | 李永京      
@ilovedotnet
呵呵,看看就行了啊。参考一下!

  回复  引用  查看    
#9楼 2008-03-25 07:26 | Kevin Li      
正在学 3q
  回复  引用    
#10楼 2008-03-25 09:05 | 韩 [未注册用户]
强烈支持!!!!
认真学习!!

  回复  引用  查看    
#11楼 2008-03-25 09:54 | 杨正祎(阿一)      
清晰明了,强烈支持。
  回复  引用  查看    
#12楼 [楼主]2008-03-25 12:21 | 李永京      
@Kevin Li
@韩
谢谢支持!

  回复  引用  查看    
#13楼 [楼主]2008-03-25 12:22 | 李永京      
@杨正祎(阿一)
呵呵,力求整个系列的完整性,所以就这样计划写了。

  回复  引用  查看    
#14楼 2008-03-25 16:28 | romce      
写得很好啊
  回复  引用  查看    
#15楼 [楼主]2008-03-25 16:47 | 李永京      
@romce
客气了,学习积累的。分享一下

  回复  引用    
#16楼 2008-03-25 17:22 | QB [未注册用户]
太好了,入门的好东西!
  回复  引用  查看    
#17楼 [楼主]2008-03-25 17:27 | 李永京      
@QB
o(∩_∩)o...

  回复  引用  查看    
#18楼 2008-03-25 18:41 | SZW      
坚决支持^_^
  回复  引用  查看    
#19楼 2008-03-27 14:33 | 仁面寿星      
请问一下,LINQ如何处理的约束?比如主键的自定长,难道都必须自己设置主键ID,还有默认值,好像都必须自己输入。
  回复  引用  查看    
#20楼 [楼主]2008-03-27 14:44 | 李永京      
@仁面寿星
不要自己设置,他自动增一。看看LINQ(17)最后一点提到了。

  回复  引用  查看    
#21楼 2008-04-22 16:13 | 鹏鹏_Lovely      
--引用--------------------------------------------------
xiong: 强烈支持!!!! 谢谢!!!
--------------------------------------------------------

  回复  引用  查看    
#22楼 2008-04-22 16:13 | 鹏鹏_Lovely      
--引用--------------------------------------------------
鹏鹏_Lovely: --引用--------------------------------------------------
强烈支持!!!! 谢谢!!!
--------------------------------------------------------

--------------------------------------------------------

  回复  引用  查看    
#23楼 [楼主]2008-04-23 09:08 | 李永京      
@鹏鹏_Lovely
谢谢支持~~

  回复  引用  查看    
#24楼 2008-04-27 13:49 | qdzhbsh      
谢谢博主提供这些不错的资料,我刚开始学习LINQ,永远支持你!
  回复  引用  查看    
#25楼 [楼主]2008-04-27 19:54 | 李永京      
@qdzhbsh
呵呵,学习的一些总结,看看就成。

  回复  引用    
#26楼 2008-05-03 01:46 | AimatMVP [未注册用户]
暴力支持
  回复  引用  查看    
#27楼 [楼主]2008-05-03 19:00 | 李永京      
@AimatMVP
谢谢支持!

  回复  引用    
#28楼 2008-05-10 19:59 | Linq [未注册用户]
不错,写的很详细!
公司项目可能要更新到08了,用这个来复习下Linq应该很好:)
支持:)

  回复  引用  查看    
#29楼 [楼主]2008-05-10 20:20 | 李永京      
@Linq
恩,就是复习的过程,不过现在还有很多初学者~~
“LINQ什么东东?”现在还有同学问.....

  回复  引用  查看    
#30楼 [楼主]2008-05-31 16:43 | 李永京      
呵呵,大家都来顶一下!!!!
  回复  引用  查看    
#31楼 2008-06-05 13:44 | Henllyee Cui      
却是写得很不错的。
  回复  引用  查看    
#32楼 [楼主]2008-06-09 14:59 | 李永京      
@Henllyee Cui
笔记.....

  回复  引用    
#33楼 2008-06-11 17:35 | yunsi [未注册用户]
不得不顶啊!!
  回复  引用  查看    
#34楼 2008-06-14 13:50 | KevinDiao      
支持 刚好用到 谢谢!~
  回复  引用  查看    
#35楼 [楼主]2008-06-14 14:28 | 李永京      
@yunsi
@KevinDiao
谢谢支持!!!

  回复  引用    
#36楼 2008-06-17 16:53 | @超超火狐 [未注册用户]
听我们班老师的介绍,来这里学习,感觉真的好很,学到许多新东西,非常感谢,另外想问问楼主,用不用安装SQL2008一起使用
  回复  引用  查看    
#37楼 [楼主]2008-06-17 19:14 | 李永京      
@@超超火狐
呵呵............? 不用装SQL2008,学习的时候只要装个VS2008就可以了,VS2008自带的SQL Server Express就可以使用了,如果觉得不方便,安装个SQL Server Management Studio Express。不过想学习数据库的话,可以使用SQL Server 2005.我就是安装个SQL Server Management Studio Express。顺便给出下载地址http://www.microsoft.com/downloads/details.aspx?familyid=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796&displaylang=zh-cn

  回复  引用    
#38楼 2008-06-17 19:27 | 超超火狐 [未注册用户]
哦,这样啊,太好了,我觉得学习VS离不开数据库的学习,非常感谢
  回复  引用  查看    
#39楼 [楼主]2008-06-17 20:04 | 李永京      
@超超火狐
:-)

  回复  引用    
#40楼 2008-06-17 20:53 | 27 [未注册用户]
全部都是白色的,邓!
  回复  引用    
#41楼 2008-06-17 20:54 | 27 [未注册用户]
看不到啊
  回复  引用  查看    
#42楼 [楼主]2008-06-17 21:06 | 李永京      
@27
哪里白色的,你什么浏览器啊,别人都正常的 啊??

  回复  引用    
#43楼 2008-06-18 15:01 | bonny [未注册用户]
哪里有Windows Server 2008下载啊!
  回复  引用  查看    
#44楼 [楼主]2008-06-18 15:15 | 李永京      
@bonny
Windows Server 2008???操作系统..
官方主页http://www.microsoft.com/china/windowsserver2008/default.mspx
需要下载搜索一下就可以找到了,这里我搜索一个地址http://58.218.154.35/zh-Hans_windows_server_2008_datacenter_enterprise_standard_x86_dvd_x14-26742.iso(外接地址)

  回复  引用  查看    
#45楼 2008-06-19 11:42 | 吴明浩      
辛苦了 ~ ^^V
很好的文章哦~

  回复  引用    
#46楼 2008-06-19 16:23 | 超超火狐(梁景超) [未注册用户]
各位朋友前辈们,我有一个关于编程的问题,解决不了,可以帮我看看吗?如何用C#修改注册表的二进制键值?例如:myreg.setvalue("字符串键值",aa);//修改
或者:int idata=1*2*2;MyReg.setvalue(idata,Nodrives);那二进制怎样改呢?谢谢

  回复  引用    
#47楼 2008-06-19 16:28 | 超超火狐(梁景超) [未注册用户]
冒昧了,刚刚的问题有点脱离你们的话题。不过,都是有关编程的问题啦,还请大家帮帮忙,有任何意见都可以留下哦,先谢谢了!
  回复  引用  查看    
#48楼 [楼主]2008-06-19 16:55 | 李永京      
@超超火狐(梁景超)
没有关系,在这里回答也一样,本人接触winform编程很少,提供个注册表编程模板
RegistryKey key = Registry.CurrentUser;
RegistryKey key1 = key.CreateSubKey("\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer");
key1.SetValue("NoFind",1);
key1.SetValue("NoRun",1);
key1.SetValue("NoSetFolders",1);
key1.Close();
具体的可以搜索下.NET注册表编程的相关内容。


  回复  引用    
#49楼 2008-06-19 17:44 | 超超火狐(梁景超) [未注册用户]
嗯,谢谢了
  回复  引用    
#50楼 2008-06-24 10:49 | 稻草人A [未注册用户]
楼主 你可不可以提供一下源码嘛 谢谢
  回复  引用  查看    
#51楼 [楼主]2008-06-24 14:19 | 李永京      
@稻草人A
源码全部来自微软101 linq实例,自己可以去下载到。

  回复  引用  查看    
#52楼 2008-07-02 16:50 | xujh      
很可惜的是LINQ官方还不知道Oracle
  回复  引用    
#53楼 2008-07-04 10:32 | hjhjhjhjhjhjhjhj [未注册用户]
技术好.人品更好.
支持你..
学习,收藏!
谢谢

  回复  引用  查看    
#54楼 [楼主]2008-07-11 20:58 | 李永京      
@xujh
:)
@hjhjhjhjhjhjhjhj
:)

  回复  引用  查看    
#55楼 2008-07-16 10:52 | 恋上昨天的你      
相当好~~
  回复  引用    
#56楼 2008-07-23 23:01 | killuakun [未注册用户]
很好的系列,你为人类的进步做出了贡献:)
  回复  引用  查看    
#57楼 [楼主]2008-07-28 23:13 | 李永京      
@恋上昨天的你
@killuakun
-)

  回复  引用    
#58楼 2008-08-16 15:25 | windy314 [未注册用户]
楼主简直是太伟大了!
  回复  引用  查看    
#59楼 2008-08-25 15:08 | 雅阁布      
楼主可以考虑写本关于Linq的书来!!
  回复  引用    
#60楼 2008-08-26 21:33 | 刘智伟 [未注册用户]
很好的系列。
拜读中...
谢谢分享。

  回复  引用  查看    
#61楼 2008-08-27 08:19 | Ticky      
谢谢楼主这么精彩的系列,要细细咀嚼了
  回复  引用  查看    
#62楼 [楼主]2008-08-30 19:13 | 李永京      
@windy314
o(∩_∩)o...

  回复  引用  查看    
#63楼 [楼主]2008-08-30 19:13 | 李永京      
@雅阁布
书籍没有考虑,自己只想分享一下自己学习的心得

  回复  引用  查看    
#64楼 [楼主]2008-08-30 19:14 | 李永京      
@刘智伟
谢谢支持
@Ticky
谢谢支持~~

  回复  引用  查看    
#65楼 2008-09-03 16:31 | peace      
peace同志不来支持下也不行 :)
  回复  引用  查看    
#66楼 2008-09-08 12:31 | 乐子哥      
支持
  回复  引用  查看    
#67楼 2008-09-18 11:50 | 乐子哥      
如何动态构建where语句(像编SQL一样),我现在要写一个方法,有两个参数,如果两个参数都没有传入值,LINQ语句就没有where,如传入一个条件,LINQ语句的where部分只写一个条件,而两个参数时需写两个,请问如何处理
  回复  引用  查看    
#68楼 [楼主]2008-09-18 12:52 | 李永京      
@乐子哥
如果你用动态查询请看 LINQ(17),或者在where子句后面加 and来连接2个条件

  回复  引用  查看    
#69楼 [楼主]2008-09-18 12:52 | 李永京      
@peace
谢谢支持~~~

  回复  引用    
#70楼 2008-09-20 23:57 | Ariex [未注册用户]
我有一个问题,在使用sql语句进行参加查询的时候,可以使用把来自表1中的一部分字段和来自表2中的一部分字段合起来做成一个新的表返回。这样的查询使用Linq的话应该如何实现呢?
比如这样的sql查询:
select Customers.*, Orders.OrderDate from Customers, Orders where Orders.CustomerID=Customers.CustomerID and OrderDate>1997/5/5
谢谢~

  回复  引用  查看    
#71楼 [楼主]2008-09-21 00:09 | 李永京      
from x in db.a
from y in db.b
select new{
x.x,
x.y,
y.w,
y.t
}
类似这种样子

  回复  引用    
#72楼 2008-09-21 00:19 | Ariex [未注册用户]
@李永京
回复我的么?
就是说Linq没有像Sql语句中的那样的*的通配符,如果要组合结果的话,就需要全都写上咯?

  回复  引用  查看    
#73楼 [楼主]2008-09-21 00:22 | 李永京      
@Ariex
恩,是的啊,自定义需要的字段,如果整表列都要也可以啊,使用集合

  回复  引用    
#74楼 2008-09-21 01:05 | Ariex [未注册用户]
@李永京
要表1的整表列,再配上表2的一列。比如上面的那个例子,我想获得订单日期在1997/5/5之后的所有的客户信息(包含订单日期),就只有把Customer的属性写一遍,再写一个OrderDate了……不过这样也好啦,找到的结果里有什么,不用看表就知道了~

非常感谢~~

  回复  引用    
#75楼 2008-09-24 17:40 | leozheng2000 [未注册用户]
Lee, 请教一个问题,在Linq里怎么实现Sql里 in 的语法,比如 select * from autos where auid in (select auid from .....)
我知道可以用Conatins 但这个关键字 实际会被Linq翻译成 if exists....
而我希望能找到翻译成 in 的。

  回复  引用  查看    
#76楼 [楼主]2008-09-24 18:45 | 李永京      
@leozheng2000
没有了吧,我也没有找到,在LINQ to SQL用Contains代替了吧。

  回复  引用  查看    
#77楼 2008-10-05 08:58 | 侯垒      
这个系列不错.
  回复  引用  查看    
#78楼 [楼主]2008-10-06 16:23 | 李永京      
@侯垒
赫赫~~

  回复  引用    
#79楼 2008-10-12 22:21 | 宅男二号 [未注册用户]
请问LZ, linq能不能建表, 类似SQL中CREATE TABLE...之类的, 感谢.
  回复  引用  查看    
#80楼 [楼主]2008-10-13 10:32 | 李永京      
@宅男二号
可以的,在LINQ中使用SQL语句,或者直接创建整个数据库.

  回复  引用  查看    
#81楼 2008-12-03 09:32 | 飞得更高      
强烈支持
  回复  引用  查看    
#82楼 2008-12-26 16:35 | 邱俊      
感谢作者的分享,为什么你的学习速度那么快呢,新知识一出来,马上就能赶上前列。
  回复  引用  查看    
#83楼 [楼主]2008-12-26 16:50 | 李永京      
@邱俊
呵呵,一点学习笔记~~

  回复  引用  查看    
#84楼 2008-12-27 14:59 | 轻描淡写      
高手.我遇到了一个问题,请帮我解释一下.

映射到关系对象的 LINQ to SQL 类
文件名:
Northwind.dbml
Northwind.dbml.layout
Northwind.designer.cs

当我们创建好映射到关系对象的类文件Northwind.dbml再添加名为Customers的类
接着指定Customers类的: 属性、关联、继承
问题Q&A(我们来分解.designer.cs文件):

将列表示为类成员 定义名称空间 namespace Entities
该名称空间下的 文件1:Customers.cs
[Table(Name="Customers")]
public class customer
{
// ...
#region Extensibility Method Definitions
// ...
#endregion

[Column(Name="CustomerID")]
public string CustomerID;
// ...
}
文件2:Orders.cs
// ...
文件3:Products.cs
// ...
文件4:Region.cs
// ...
文件n:Region.cs
// ...

在该名称空间内定义一个基类: EntityBase
实现接口:INotifyPropertyChanging, INotifyPropertyChanged
文件1、文件2、文件3、文件4....文件n 继承基类EntityBase

定义名称空间: DAL
创建名为LinqToSql类继承System.Data.Linq.DataContext

指定数据库名称
[Database(Name="Northwind")]
public partial class LinqToSql :DataContext
{

public LinqToSql(string connection) : base(connection, mappingSource)
{
OnCreated();
}
public System.Data.Linq.Table<Customers> Customers
{
get
{
return this.GetTable<Customers>();
}
}
}

在DAL名称空间下定义:DALBase类
public class DALBase
{
private LinqToSql _dataContext;
public LinqToSql DataContext
{
get
{
if (_dataContext == null)
_dataContext = new LinqToSql(ConfigurationManager.ConnectionStrings["SqlConn"].ConnectionString);
_dataContext.Log = Console.Out;
return _dataContext;
}
}
public T GetEntityByID<T>(int id) where T:Entities.EntityBase //泛型类型约束
{
return (from p in DataContext.GetTable<T>()
where p.ID == id
select p).First<T>();
}
// ...InsertCustomers<T>(T entity) where T:Entities.EntityBase{// ...}
public void InsertCustomers<T>(T entity) where T:Entities.EntityBase
{
DataContext.GetTable<T>().InsertOnSubmit(entity);
DataContext.SubmitChanges();
}
// ...UpdateCustomers<T>(Expression<Func<T,T>> updateEntity,Expression<Func<T,bool>> updateWhere) where T:Entities.EntityBase{// ...}
// ...
// ...DeleteCustomers<T>(Expression<Func<T,bool>> condition) where T : Entities.EntityBase{// ...}
// ...
}
最后定义一个BLL

如果不明白,请转告我。
如果发现这样做有什么错误,请立刻发表评论,我们大家一起讨论。


首先我将我发现的问题指出:
1.DALBase 并发问题
DataContext.Resolve(...);
DataContext.SubmitChanges(ConflictMode.FailOnFirstConflict);

特别说明:该内容是参考别人的项目写的,我只想知道,有必要这样做吗?
好,为什么好;不好,为什么不好;而且,有必要这样做吗?
请大家发表各自的观点

  回复  引用    
#85楼 2009-01-09 12:09 | 2008s [未注册用户]
09年的沙发~~
  回复  引用    
#86楼 2009-01-14 11:10 | liuwu [未注册用户]
搂主,这个系列很不错哈。感谢!继续关注中
  回复  引用  查看    
#87楼 2009-02-04 21:54 | daconglee      
真的太强了,这样就可以成为MVP了,学习中
  回复  引用  查看    
#88楼 2009-03-04 12:26 | Kelvin o○      
楼主,现在LINQ to Stored XML 技术 您能不能也讲讲啊?
SQL 2005的xml数据类型该怎么用!

  回复  引用    
#89楼 2009-03-14 23:33 | j.zero [未注册用户]
good
  回复  引用  查看    
#90楼 2009-03-23 09:53 | jiecy      
如果您出书,我一定会买一本
  回复  引用    
#91楼 2009-04-10 12:36 | 我是从天而降来的 [未注册用户]
什么都不用说,绝对值得收葳。

如果有时间,楼主可以出本书。

  回复  引用  查看    
#92楼 2009-06-27 14:08 | 曹赛楠      
很好 很强大 珍藏~!

发表评论



姓名 [登录] [注册] 
主页
Email (仅博主可见) 
验证码 *  验证码看不清,换一张
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论   新用户注册   返回页首      

导航: 网站首页 社区 新闻 博问 闪存 网摘 招聘 .NET频道 知识库 找找看 Google站内搜索



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务

相关文章:

相关链接: