摘要:首先将word文档路径保存在List<string>中,新建一个word文档对象并循环List打开对应的word,之后拷贝文档,在新文档中粘贴并且粘贴前先插入换行符。最后保存新文档,并销毁进程。 protected void Button1_Click(object sender, EventArgs e) { // object worPath = @"C:\"; object path = @"C:\Test合并word.doc"; List<string> pathList = new List<string>(
阅读全文
随笔分类 - C#学习
摘要:最近一个项目的需求是要根据一个Word文档的模板,用记录集的具体内容替换掉里面的标识字符的内容,生成不同的文档。分两步:第一:复制模板的内容到一个Document对象里从源DOC文档复制内容返回一个Document类#region 从源DOC文档复制内容返回一个Document类 /// <summary> /// 从源DOC文档复制内容返回一个Document类 /// </summary> /// <param name="sorceDocPath">源DOC文档路径</param> /// <returns>
阅读全文
摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System;using System.Windows.Forms;using System.IO; namespace GA{ public partial class Form1 : Form { TTm[] TP; int _ts = 0; int n = 10; int m = 12; int Pc = 50; //杂交的概率 int Pm = 80; //变异的概率 dec
阅读全文
摘要:/// <summary> /// 获得字符串中开始和结束字符串中间得值 /// </summary> /// <param name="str"></param> /// <param name="s">开始</param> /// <param name="e">结束</param> /// <returns></returns> public static string GetValue(string str,
阅读全文
摘要:将oledb读取的excel数据快速插入的sqlserver中,很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,最好的办法是使用bcp,也就是System.Data.SqlClient.SqlBulkCopy 类来实现。不但速度快,而且代码简单,下面测试代码导入一个6万多条数据的sheet,包括读取(全部读取比较慢)在我的开发环境中只需要10秒左右,而真正的导入过程只需要4.5秒。using System;using System.Data;using System.Windows.Forms;using System.Data.OleDb;namespace WindowsApp
阅读全文
摘要:以前一直是用C#直接操作Excel,但是发现性能无比低下,最近发现用Excel中的宏可以高速的完成批处理的功能,于是决定写一个用C#为Excel文件创建宏的程序,工程如下:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System;using System.IO;using System.Runtime.InteropServices;using System.Reflection;using System.Text;usi
阅读全文
摘要:近日的一系列工作是做网站的营运维护,因此做了大量的支持工具。有Excel中写VBA的,也有直接C#做的工具。有时需要在C#中执行Excel VBA宏,甚至有时还需要在执行了VBA宏之后,获取返回值再进行相应的处理。为了使用方便,我写了一个执行Excel VBA宏的帮助类 。放在博客里做个备份也希望对有类似需求的朋友有所帮助。帮助类仅提供了一个方法:RunExcelMacro参数说明: string excelFilePath Excel文件路径 string macroName 宏名称 object[] parameters 宏参数组 out object rtnValue 宏返回值 bool
阅读全文
摘要:C# 中使用 Excel using System;using System.Collections.Generic;using System.Text;using System.Reflection;using System.Runtime.InteropServices;using Microsoft.Office.Interop.Excel;using ExcelApplication = Microsoft.Office.Interop.Excel.ApplicationClass;namespace ExcalDemo...{public class ExcelFiles...{pu
阅读全文
摘要:在上一篇我们已经用PowerDesigner创建好了需要的测试数据库,下面就可以开始用它完成批量代码生成的工作啦.下面我会一步步的解释如何用CodeSmith实现预期的结果的,事先声明一下,在此只做一个简单的Demo,并不详细的讲解CodeSmith各个强大的功能,有兴趣的朋友可以打开CodeSmith的帮助文档了解.我只做个抛砖引玉,希望能激起大家更多思想的火花~先看看CodeSmith的工作原理:简单的说:CodeSmith首先会去数据库获取数据库的结构,如各个表的名称,表的字段,表间的关系等等,之后再根据用户自定义好的模板文件,用数据库结构中的关键字替代模板的动态变量,最终输出并保存为我
阅读全文
摘要:最近要忙期考,但还是决定每天抽点空来写CodeSmith的系列文章了,在此实在不敢用教程这个词语,毕竟自己对CodeSmith了解的也不是很多,有很多牛人都在博客园发布了不少关于CodeSmith的文章了,但我还是想发表一下自己的心得,希望能给初学者更多的参考,教程中有错误或者表述不清的地方欢迎大家指出,我还是会秉承之前的风格,用尽量多的图来说明步骤,因为我觉得还是图文并茂的文章比较容易理解.好了,废话少说,开始我们的CodeSmith旅程吧,我先讲讲这个系列教程要完成的目标吧,众所周知,CodeSmith其中一个强大的功能就是依照模板生成批量代码,这也是吸引着众多编程人士使用它的原因,它大大
阅读全文
摘要:1、分享第一条经验:“学历代表过去、能力代表现在、学习力代表未来。”其实这是一个来自国外教育领域的一个研究结果。相信工作过几年、十几年的朋友对这 个道理有些体会吧。但我相信这一点也很重要:“重要的道理明白太晚将抱憾终生!”所以放在每一条,让刚刚毕业的朋友们早点看到哈! 2、一定要确定自己的发展方向,
阅读全文
摘要:Enterprise Library 5.0 系列教程哈哈,这次是我第一次写系列文章,没想到也不知不觉就写完了,为了大家认识Enterprise Library 5.0都有哪些功能模块,我在此做了一个目录供大家参考,也希望大家多多指教,将来我还会写一些文章分享自己的学习成果的 \(^ ^)PS: 近期有不少朋友加我QQ问EL5.0的问题,但是因为毕业了我没有从事C#开发的工作,对这些早已生疏,大家就不要加Q问我了。大部分问题其实在官方文档和Google上面都有答案的,本教程仅供大学参考学习……目录1. Microsoft Enterprise Library 5.0 系列教程(一) Cachi
阅读全文
摘要:到目前为止,我们使用的模块都是在同一个配置文件中,这显然是不灵活的,我们希望每个功能模块能独立的在一个配置文件中体现,这样不仅易于管理,易于扩展,也易于阅读和分类.企业库当然考虑到了这个问题并且提供了解决方案,本章就是讲解如何使用Configuration Application Block来将各个模块分割到独立的配置文件中的.和以前一样,我们先提需求,再用实例做讲解,这样比较形象生动些: 1)创建一个工程,里面用到企业库的Data 数据访问模块和Log日志处理模块 2)2个模块的配置分别保存在不同的配置文件中(Data.config和Log.config中) 3)在程序中调用这2个模块...
阅读全文
摘要:代理对象(Proxy Object)会通过Handler链定位到真实对象(Real Object),而Policy则被注入到代理对象和真实对象中。整个流程如图:我个人对Policy Injection Application Block使用的看法是:用户先创建一个代理,用这个代理间接操作实体,在调用实体的方法或者成员属性时可以透明的触发一系列设置好的Handler(如日记记录,身份验证等),并且只需要修改相应的配置文件就能快速更改Handler链.(因为是个人看法,也许不太准确,官方解释在此 http://msdn.microsoft.com/en-us/library/ff647463.as
阅读全文
摘要:依赖注入容器Unity:Unity的构造类似于Castle中的IOC(控制反转 或者叫依赖注入)容器,我们使用抽象接口来隔离使用者和具体实现之间的依赖关系,但是不管再怎么抽象,最终还是要创建具体实现类的实例,这种创建具体实现类的实例对象就会造成对于具体实现的依赖,为了消除这 种创建依赖性,需要把依赖移出到程序的外部(比如配置文件)。使用依赖注入后,这些类完全是基于抽象接口编写而成的,所以可以最大限度地适应需求的变化。 依赖注入的形式有三种,分别为构造子注入(Constructor Injection)、设值方法注入(Setter Injection)和接口注入(Interface Inject
阅读全文
摘要:使用企业库异常处理应用程序模块的优势:它支持整个应用程序体系结构层的异常处理,而不仅限于服务接口的界限。它使得异常处理策略可以在管理层定义和维护,以便决策人员(可能是系统管理员和开发人员)可以定义如何处理异常。他们可以维护和修改控制异常处理的规则集,而无需更改块的应用程序代码。它提供了常用的异常处理功能,例如记录异常信息的功能、通过将原始异常替换为其他异常来隐藏敏感信息的功能,以及通过将原始异常打包到另一个异常中来添加异常的上下文信息的功能。这些功能封装在名为 Exception handlers 的 .NET 类中。它可以合并多个异常处理程序以产生某个异常所需的响应,例如先记录异常信息,再将
阅读全文
摘要:开发人员经常编写需要安全功能的应用程序。这些应用程序通常需要执行一系列不同的安全操作,而且它们还经常与不同的基础安全提供程序(如 Microsoft Active Directory 目录服务、授权管理器、Active Directory 应用程序模式 (ADAM) 和自定义数据库等)进行交互。 安全应用程序块通过收集开发人员必须执行的许多最常见的安全任务,来简化开发人员的工作。每个任务都以一致的方式处理,从特定的安全提供程序中抽象出应用程序代码并使用最佳做法。您甚至可以通过更改配置来更改基础提供程序,而无需更改基础应用程序代码。验证应用程序块功能框架如下图所示: 几个基本概念:(1) Tic
阅读全文
摘要:企业库数据库访问模块通过抽象工厂模式,允许用户通过简单的配置选择不同的数据库作为程序的数据源,大大解决了切换数据库时带来的麻烦.因为我本机只安装了SQL Server 2005,所以在此只做SQL的演示,需要深究的朋友可以访问以下网站:http://msdn.microsoft.com/en-us/library/ff664408%28v=PandP.50%29.aspx企业库数据库访问模块的几大功能:1. 最简单的功能,通过ExecuteNonQuery.方法执行SQL语句.2. 执行ExecuteDataSet,返回DataSet类型的数据集.3. 执行ExecuteScalar,获取返回
阅读全文
摘要:企业库日志应用程序模块工作原理图: 从上图我们可以看清楚企业库日志应用程序模块的工作原理,其中LogFilter,Trace Source,Trace Listener,Log Formatter的信息都可以在Category配置文件中反映出来,通过配置文件,调用LogWriter类的Writer方法,就可以将包含日志信息的LogEntry实体写入Category配置文件中指定的设备了.企业库日记应用程序模块提供了下列几种记录方法:The event log An e-mail message A database A message queue A text file A Windows
阅读全文
摘要:企业库验证应用程序模块之配置文件模式:1. 新建一个控制台应用程序,并创建一个Customer类,其代码如下所示:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System;using System.Collections.Generic;using System.Linq;using System.Text;using Microsoft.Practices.EnterpriseLibrary.Validation.Val
阅读全文