摘要:
我们用VS默认创建一个WCF服务,定义一个全局变量,如private string _appName = string.Empty; 假如我们在服务端创建两个方法,第一个方法给_appName赋值,第二个方法读取_appName: public void SetValue(string name) { _appName = name; } public string GetValue() { return _appName; }同样,用VS创建一个代理来调用这个服务,先赋值再取值N... 阅读全文
摘要:
Nlog是一个很不错的.NET日志记录组件,它可以将日志输出到控件台,保存到文本,也可以很方便的记录到数据库中。可以在这里下载Nlog:http://nlog-project.org/这里分享一下如何配置Nlog,可以使其日志记录到数据库中(这里我用的是SQL server 2008).新建一个控件台项目:NlogSample,再通过NuGet加入Nlog程序集,如果没有装NuGet也可以在Nlog官网上下载,如图:安装好以后,在项目中就有了Nlog程序集和Nlog.config文件打开Nlog.config文件,在target节点中,增加对数据库的配置。<target type=&qu 阅读全文
摘要:
1 IIS注册WCF 以管理员身份运行命令行: "C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r -y2 问题:无法找到 ServiceHost 指令中作为服务属性值提供的类型 将网站转换为应用程序3 无法识别的属性“targetFramework”。请注意属性名称区分大小写。在IIS:应用程序池 中配制.NET Framerwork版本为4.04 处理程序“svc-Integrated”在其模块列表中有一个错误模块“Manage 阅读全文
摘要:
在Windows中,对于一些不需要显示图形界面的应用程序,我们可以把它做成Windows服务,让它在后台运行,例如一些文件监视服务等。一台电脑中的Windows服务可以在“计算机-管理-服务应用程序-服务”中看到,如图:在这里,我们可以启动或停止一个服务。创建服务:下面我们来创建一个文件监视功能的Windows服务。用VS新建一个项目,模版选择“Windows服务”,在服务代码中会有两个方法:OnStart与OnStop,分别是服务的启动时的执行代码与服务停止时的执行代码。public partial class WatchService : ServiceBase { p... 阅读全文
摘要:
1 i和j的值为多少 string s = "abcedfg 中国人"; int i = s.Length; int j = Encoding.Default.GetBytes(s).Length;答案:i=11,j=142 实例化ClassB后输出结果 class ClassA { public ClassA() { Print(); } public virtual void Print() { } } ... 阅读全文
摘要:
悲催的又要开始找工作了。从今天开始,遇到好的面试题就记下来给大家分享一下。今天的收获还是不错的,虽然杯具了,但那公司的面试题目有点意思。其实很多都是基础,抽象类啊,继承重载啊,可是以前都不怎么重视。现在开始,不懂的面试题都要记下来,回来后找解决方法。1 题目要求差不多是这样:完成下面的方法,要求返回一个验证码,并且不能同时存在容易混淆的0和Q。每个字母取得的概率要相同。 他先给出了一部分代码: /// /// 生成一个随机验证码,并且不能同时出现容易混淆的0和O /// /// /// private static ... 阅读全文
摘要:
Nhibernate中,一般我们用session对数据进行增删改查时都要将session包装在一个事务()中,类似下面的代码: using (var tx = session.BeginTransaction()) { //这里增加增删改查处理代码 //... tx.Commit(); }每次都这样显示的去增加session.BeginTransaction()与tx.Commit()是不是很烦呢。我们可以直接创建一类DataAccessObject来处理这种逻辑... 阅读全文
摘要:
在WinForm中,微软提供的Label中文字只能是一种颜色:要么全是黑色,要么全是红色或者其它颜色。当我们为了强调某些文字,让它用红色显示时只能新建一个Lable对象,设置它FontColor为红色。但是如果在一行文字内嵌三个红色,那岂不是要拼接六个Label控件?坑爹啊,这么麻烦,我们还不如自己重写一下Label控件,让它支持多颜色的文字呢。OK。Let's do it.要让不同的文字显示不同的显示,我们必须告诉Label控件哪些文字对应哪种颜色。在这里,我们定义一个字典来存储。 /// <summary> ///KeyValuePair中 string存储文字... 阅读全文
摘要:
为数据库中的关键字段进行加密是必不可少的,特别是一些用户密码,银行卡账号等。现在我们来说一下如何在Nhibernate中创建一个加密类来为数据库中的关键字段加密。1 创建一个接口:IEncryptorpublic interface IEncryptor { string Encrypt(string plainText); string Decrypt(string encryptedText); string EncryptionKey { get; set; } }2 再创建一个继承它的子类:SymmetricEncryptorBas... 阅读全文
摘要:
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 阅读全文
摘要:
利用上一节的数据:Nhibernate 3.0 cookbook学习笔记 一对多与多对多映射我们来做查询1Criteria Queries简单的单表查询: public IEnumerable<Movie> GetMoviesDirectedBy(string directorName) { return _session.CreateCriteria(typeof(Movie)) .Add(Restrictions.Eq("Director", directorName)) .List<Movie>(); ... 阅读全文
摘要:
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... 阅读全文
摘要:
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 阅读全文
摘要:
本文基于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 阅读全文
摘要:
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... 阅读全文
摘要:
.NET中有些方法以前没有接触过,但用过了之后让人眼前一亮,哇,原来你这么好用。下面就说说被我忽视过的方法。当然,每个人的编程经历,涉猎面及对.NET的认知程度都不一样。所以,这只是一家之言,肯定有很多不足之处,欢迎大家批评指正。1. ADO.NET类DataTable.Merge()如何合并两张表?自己以前写的方法:private void UniteTable(DataTable sourceTable, DataTable targetTable) { foreach (DataRow row in sourceTable.Rows) ... 阅读全文
摘要:
很多情况下我们需要将grid中的数据导出成Excel或Word格式。下面我们来说说如何实现它。1 先用一个方法,筛选出有效的数据。因为grid中可能会有隐藏列,而这些列中的数据我们一般都是不需要的,所以我们先将grid中的数据进行过滤,保存在一个DataTable中。private DataTable exporeDataToTable(DataGridView dataGridView) { //将datagridview中的数据导入到表中 DataTable tempTable = new DataTable("tempTable"... 阅读全文
摘要:
很多时候我们会有这样的需求:一个窗体中有两个GRID,两个GRID中数据表结构差不多,我们要把一个GRID中的数据加入到另一个GRID中。一般的做法是新增一个导入或导出按钮,选择目标行后,通过按钮来触发事件,实现两个GRID中数据的增减。嘿嘿,但是,如果我们能够在选中目标行后,直接用鼠标将选中的行拖拽到另一个GRID中是不是比较酷一点呢。下面,我们就来看看如何实现它。首先,创建示例数据。我们还是用上一节:玩转DataGridView之行的展开与收缩的数据脚本,再用它新建两张表就行。select * into Department_A from Department where DparentI 阅读全文
摘要:
很多数据都有父节点与子节点,我们希望单击父节点的时候可以展开父节点下的子节点数据。比如一个医院科室表,有父科室与子科室,点击父科室后,在父科室下面可以展现该科室下的所有子科室。我们来说一下在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 阅读全文
摘要:
自从认识了FindAll(),一般List中查找符合条件的数据项我都用List<T>.Find()或List<T>.FindAll().代码简洁,自己看了赏心悦目,况且是微软内部的方法,效率应该不会差。然而,今天心血来潮,写代码测试了一下,确发现FindAll()比For循环效率差了好多,集合比较小的时候这差异就更明显了。测试代码:Stopwatch watch = new Stopwatch(); Random rand = new Random(); List<int> list = new List<int>(); //构造一个LIST f 阅读全文