摘要: 幸福从来不会来敲门,躲过不幸就是幸福。 对于一个幸福总是徘徊在门外,而不幸却总是接踵而来的人而言,挣扎的恐惧往往代替了对幸福的渴望,生命的目的与其说是为了成就某种积极的意义或者说追寻幸福,还不如说只是为了逃避不幸。 这是从豆瓣上看来的对《当幸福来敲门》的一个经典影评,电影所播放过的每一幕幕,让我看到的根本不是幸福即将来敲门的喜悦和欢欣,不是苦难终将要过去的解脱和释然,不是梦想终究会实现的执着和坚韧... 阅读全文
posted @ 2011-10-17 03:07 澐飞扬 阅读(4501) 评论(96) 推荐(23) 编辑
摘要: 今天要说的实体框架并不是ADO.NET EntityFramework,而是利用特性与反射技术自己来搭建一个简单的实体框架。在来讲之前先说些题外话,我们知道要想使一个项目有更好的健壮性、可移植型,是要将项目分层,不管是c/s,还是b/s框架一般都是三层架构,数据处理层(DAL)、业务逻辑层(BLL)、界面显示层(USL或者UI)。当然根据项目的业务流程可能分个七八层也是常有的事。今天主要讲的是在数据处理层是怎样实现实体架构的。 言归正传,现在开始构建框架,首先建立数据库,就做一个学生选课信息系统(StudentManage),包括三张表,一个学生信息表(Students),一个课程表(Cou. 阅读全文
posted @ 2011-06-11 19:45 澐飞扬 阅读(3127) 评论(30) 推荐(8) 编辑
摘要: Attribute非property(类的成员)特性提供功能强大的方法以将声明信息与 C# 代码(类型、方法、属性等)相关联。特性与程序实体关联后,即可在运行时使用名为“反射”的技术查询属性。特性以两种形式出现:一种是在公共语言运行库 (CLR) 中定义的特性。另一种是可以创建的用于向代码中添加附加信息的自定义特性。此信息可在以后以编程方式检索。特性具有以下特点:特性可向程序中添加元数据。元数据是嵌入程序中的信息,如编译器指令或数据描述。程序可以使用反射检查自己的元数据。通常使用特性与 COM 交互。先看一个例子:[System.Runtime.InteropServices.DllImpor 阅读全文
posted @ 2011-06-11 09:49 澐飞扬 阅读(1078) 评论(8) 推荐(2) 编辑
摘要: 通过上一篇文章,对Ado.net有了基本的了解,今天来看另外两个类:SqlDataAdapter,DataTable。SqlDataAdapter表示用于填充 System.Data.DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。DataTable 是在内存中开辟一块空间存储一个表,是属于程序的。首先创建一个winForm程序,界面如下:一个button控件和dataGridView控件。下面先来看一下DataTable是怎样存储数据的。首先先创建:DataTable dt = new DataTable();//定义成类字段,使每个方法都能使用下面代码放 阅读全文
posted @ 2011-06-01 18:28 澐飞扬 阅读(1279) 评论(2) 推荐(4) 编辑
摘要: Ado.net通过封装一些对象来实现c#与数据库的连接,其实就是一个桥梁。下面先通过SQL Server来看ado.net是怎么样具体连接数据库的。首先看一下在vs中创建数据库(vs内置一个数据库服务器)在视图上打开服务器资源管理器,在vs左边会看到右键数据库连接,创建数据库其中的“.”代表本地服务器,新创建的数据名字PersonDB,创建一个人Persons表,三个字段ID整形自动增长为主键,一个PersonName,nvarchar(15),存储人的姓名,PersonAge整形存储人的年纪。好了表创建好了,接下来就看看怎样把它同程序进行连接,来实现数据库的增删改查。创建一个windowFo 阅读全文
posted @ 2011-06-01 13:32 澐飞扬 阅读(1009) 评论(0) 推荐(1) 编辑
摘要: 自己动手写泛型List<T>在开始动手写自己的泛型List<T>之前,咱们先来看一下非泛型的缺点非泛型的缺点:1、大量类型转换 ArrayList AL=new ArrayList(); AL.Add(1); //存在装箱操作2、运行时错误 ArrayList AL = new ArrayList(); AL.Add(1); AL.Add("2"); foreach (int i in AL) { Console.WriteLine(i); //当遍历到第二个元素时就会报错,运行时错误 } 装箱就是将一个值类型转换成引用类型,耗费性能。 那么什么是泛 阅读全文
posted @ 2011-05-22 11:45 澐飞扬 阅读(4398) 评论(14) 推荐(5) 编辑
摘要: C#网络编程之服务客户模式在控制台下的交互 今天我们来看一下在C#中怎样实现服务端与客户端进行交互,具体怎么交互通过一个小程序来体现。要实现这么一个简单的小程序,其中涉及到的技术点虽然不多,但理解起来确实有点困难,其中设计到委托、多线程、TCP/IP网络编程等几个技术点,先对这几个技术点简单介绍下。鉴于本人技术有限,难登大雅之堂,个人表述难免有所错误,敬请见谅。 我们知道方法是没有类型的,不能当做参数进行传递,而委托可将一个方法绑定,使它可以作为参数传递。操作系统使用进程将它们正在执行的不同应用程序分开。线程是操作系统分配处理器时间的基本单元,并且进程中可以有多个线程同时执行代码。 TCP/I 阅读全文
posted @ 2011-05-15 13:09 澐飞扬 阅读(1218) 评论(0) 推荐(4) 编辑
摘要: 反射在看反射之前我们来看一下.Net源代码是怎么执行的: 我们看到.Net源代码是两次编译,一次执行的。在Visual Studio经过第一次编译生成程序集(.exe,.dll),就是IL(中间语言)和元数据,然后在经过CLR(公共语言运行库),将程序集编译成机器代码,机器代码在交给cpu去执行。我们来看.Net源代码在第一次编译之后: 现在来看一下什么是反射,反射是编程的读取与类型相关联的元数据的行为。通读取元数据,可以了解它是什么类型以及类型的成员。比如类中的属性,方法,事件等。所属命名空间System.Reflection。 反射具体是怎么实现的,下面通过一个例子来具体说明。 首先在解 阅读全文
posted @ 2011-05-15 12:39 澐飞扬 阅读(4287) 评论(10) 推荐(11) 编辑