05 2012 档案

摘要:Nhibernate中,一般我们用session对数据进行增删改查时都要将session包装在一个事务()中,类似下面的代码: using (var tx = session.BeginTransaction()) { //这里增加增删改查处理代码 //... tx.Commit(); }每次都这样显示的去增加session.BeginTransaction()与tx.Commit()是不是很烦呢。我们可以直接创建一类DataAccessObject来处理这种逻辑... 阅读全文
posted @ 2012-05-29 22:40 Gyoung 阅读(380) 评论(0) 推荐(0) 编辑
摘要:在WinForm中,微软提供的Label中文字只能是一种颜色:要么全是黑色,要么全是红色或者其它颜色。当我们为了强调某些文字,让它用红色显示时只能新建一个Lable对象,设置它FontColor为红色。但是如果在一行文字内嵌三个红色,那岂不是要拼接六个Label控件?坑爹啊,这么麻烦,我们还不如自己重写一下Label控件,让它支持多颜色的文字呢。OK。Let's do it.要让不同的文字显示不同的显示,我们必须告诉Label控件哪些文字对应哪种颜色。在这里,我们定义一个字典来存储。 /// <summary> ///KeyValuePair中 string存储文字... 阅读全文
posted @ 2012-05-29 09:07 Gyoung 阅读(3762) 评论(13) 推荐(5) 编辑
摘要:为数据库中的关键字段进行加密是必不可少的,特别是一些用户密码,银行卡账号等。现在我们来说一下如何在Nhibernate中创建一个加密类来为数据库中的关键字段加密。1 创建一个接口:IEncryptorpublic interface IEncryptor { string Encrypt(string plainText); string Decrypt(string encryptedText); string EncryptionKey { get; set; } }2 再创建一个继承它的子类:SymmetricEncryptorBas... 阅读全文
posted @ 2012-05-28 00:07 Gyoung 阅读(1620) 评论(6) 推荐(1) 编辑
摘要:NHibernate项目中都有App.config,主要是用来配置项目中的日志与数据库等。典型的App.config配置文件(这里包括log4net):View Code <?xml version="1.0" encoding="utf-8" ?><configuration> <configSections> <!--定义配置节点--> <section name="hibernate-configuration" type="NHibernate.Cfg.Confi 阅读全文
posted @ 2012-05-24 23:26 Gyoung 阅读(989) 评论(1) 推荐(1) 编辑
摘要:利用上一节的数据:Nhibernate 3.0 cookbook学习笔记 一对多与多对多映射我们来做查询1Criteria Queries简单的单表查询: public IEnumerable<Movie> GetMoviesDirectedBy(string directorName) { return _session.CreateCriteria(typeof(Movie)) .Add(Restrictions.Eq("Director", directorName)) .List<Movie>(); ... 阅读全文
posted @ 2012-05-22 16:19 Gyoung 阅读(1692) 评论(3) 推荐(2) 编辑
摘要:1 一对多映射还是用Movie与ActorRole来说明。我们假设一个Movie可以有多个ActorRole,而一个ActorRole只能对应一个Movie。设置一对多映射主要是父类(Movie)要做相应的更改。我们在Movie类中要增加一个集合,用来表示该Movie下的所有ActorRole。 public class Movie : Product { public virtual string Director { get; set; } //ActorRole集合,用于列举该Movie下的所有ActorRole public virtu... 阅读全文
posted @ 2012-05-20 14:55 Gyoung 阅读(1379) 评论(3) 推荐(1) 编辑
摘要:Nhibernate支持四种集合:1 BagsBags中的数据允许重复,并且顺序在Bag中是不重要的。比如一个ActorRole的Bag集合,可能包含actor role 1, actor role 2, actor role 3, actor role 1,actor role 4, and actor role 1,它们中允许有重复项出现。下面是一个典型的Bag映射: <bag name="Actors"> <key column="MovieId"/> <one-to-many class="ActorRol 阅读全文
posted @ 2012-05-15 08:59 Gyoung 阅读(1872) 评论(2) 推荐(2) 编辑
摘要:本文基于Nhibernate 3.0 Cookbook,下载地址:http://home.cnblogs.com/group/topic/42850.html准备工作,下载Nhibernate:http://sourceforge.net/projects/nhibernate/files/NHibernate/3.0.0.GA/因为是基于Nhibernate 3.0 Cookbook,所以用的版本也是书上的一致,不是最新的。下面我们来说说如何通过配置类的XML文件,最后在数据库中生成相应的表。一 创建一个简单的类映射。1.新建一个类库项目:Eg.Core,并将解决方命名为:CookbookD 阅读全文
posted @ 2012-05-14 00:57 Gyoung 阅读(2051) 评论(3) 推荐(2) 编辑
摘要:Autofac是一个轻量级的依赖注入框架,可以在这里面下载:http://code.google.com/p/autofac/downloads/list要想了解什么是依赖注入,可以参考下这篇博客:http://www.cnblogs.com/leoo2sk/archive/2009/06/17/1504693.html因为公司有用到这个框架,所以就网上找了些资料学习一下。现在通过一个简单的实例来运用一下。新建一个控制台应用程序:IocDemo然后创建一个IPerson接口public interface IPerson { void Work(); void... 阅读全文
posted @ 2012-05-09 22:13 Gyoung 阅读(1638) 评论(1) 推荐(1) 编辑
摘要:.NET中有些方法以前没有接触过,但用过了之后让人眼前一亮,哇,原来你这么好用。下面就说说被我忽视过的方法。当然,每个人的编程经历,涉猎面及对.NET的认知程度都不一样。所以,这只是一家之言,肯定有很多不足之处,欢迎大家批评指正。1. ADO.NET类DataTable.Merge()如何合并两张表?自己以前写的方法:private void UniteTable(DataTable sourceTable, DataTable targetTable) { foreach (DataRow row in sourceTable.Rows) ... 阅读全文
posted @ 2012-05-08 11:23 Gyoung 阅读(14590) 评论(53) 推荐(55) 编辑
摘要:很多情况下我们需要将grid中的数据导出成Excel或Word格式。下面我们来说说如何实现它。1 先用一个方法,筛选出有效的数据。因为grid中可能会有隐藏列,而这些列中的数据我们一般都是不需要的,所以我们先将grid中的数据进行过滤,保存在一个DataTable中。private DataTable exporeDataToTable(DataGridView dataGridView) { //将datagridview中的数据导入到表中 DataTable tempTable = new DataTable("tempTable"... 阅读全文
posted @ 2012-05-07 16:58 Gyoung 阅读(8847) 评论(2) 推荐(3) 编辑
摘要:很多时候我们会有这样的需求:一个窗体中有两个GRID,两个GRID中数据表结构差不多,我们要把一个GRID中的数据加入到另一个GRID中。一般的做法是新增一个导入或导出按钮,选择目标行后,通过按钮来触发事件,实现两个GRID中数据的增减。嘿嘿,但是,如果我们能够在选中目标行后,直接用鼠标将选中的行拖拽到另一个GRID中是不是比较酷一点呢。下面,我们就来看看如何实现它。首先,创建示例数据。我们还是用上一节:玩转DataGridView之行的展开与收缩的数据脚本,再用它新建两张表就行。select * into Department_A from Department where DparentI 阅读全文
posted @ 2012-05-06 16:42 Gyoung 阅读(5042) 评论(3) 推荐(0) 编辑
摘要:很多数据都有父节点与子节点,我们希望单击父节点的时候可以展开父节点下的子节点数据。比如一个医院科室表,有父科室与子科室,点击父科室后,在父科室下面可以展现该科室下的所有子科室。我们来说一下在DataGridView中如何实现这个功能。首先,创建示例数据:示例数据SQLcreate table Department( ID int identity(1,1) not null, DName varchar(20) null, DparentId int null, Dtelphone varchar(20) null, Dhospital varchar(50) null)insert into 阅读全文
posted @ 2012-05-04 11:53 Gyoung 阅读(8526) 评论(15) 推荐(7) 编辑

点击右上角即可分享
微信分享提示