摘要: .NET中的任何类型,都有对应的一个类型对象。类型对象和类型实例(类型创建的一个对象)不是同一个概念。类型对象包含类型的静态字段和方法,当类访问静态方法静态字段,实例调用方法时就会去类型对象中查找静态字段和方法假设有一个类型叫Animal 那么当我们使用它之前CLR就会创建一个特殊的对象叫类型对象Animal a1 = new Animal();a1.Eat() //这里访问Eat方法,会先去Animal的类型对象中查找Eat方法, //如果之前还没有调用过该方法,那么会先将Eat方法编译成本机代码(已经编译过就不用了)Animal.Search("老虎") //这边访问. 阅读全文
posted @ 2013-11-18 22:46 自由小菜园 阅读(525) 评论(0) 推荐(0) 编辑
摘要: 假如我们导出一份简历到word文档,那势必可能要同时导出我们包含的简历,下面就来试一下如何和通过C#代码,将图片插入到word文档中。为了简便起见,就简单一点。类似下面这样的姓名张三照片 protected void InsertPtctureToExcel() { Word.Application app = null; Word.Document doc = null; try { object oMissing = System.Reflection.Mis... 阅读全文
posted @ 2013-06-16 17:17 自由小菜园 阅读(20080) 评论(1) 推荐(0) 编辑
摘要: 假如我们需要在一个word文档的某个位置插入一张表格,而且要对这一张表格中的单元格做拆分合并,之类的。先看下效果,先不管表格是否合理,总之就是要这样的统计文档,但是人数,班级数都是不确定的,也就是表格是根 据数据动态生成的,这样我们就很难用之前的替换方式来实现,也就是要动态来创建表格。 班级成绩统计单班级姓名成绩人数总计班主任一班张三4981小李二班李四3542陈飞小红502三班丁爽5661王林1、用单元格拆分的方式实现,也就是根据有多少班级,则增加多少行,针对于其中的学生信息再对单元格进行拆分。 /// <summary> /// 数据实体类 /// </summ... 阅读全文
posted @ 2013-06-16 14:51 自由小菜园 阅读(21623) 评论(2) 推荐(2) 编辑
摘要: 在编写word文档的时候常常需要我们输入特殊的符号,比如选择框,打上勾的选择框,或者其他一些特殊字符,如下一般来说有些字符,其实直接按照原样复制一个,作为替换字符就行了,就像我们上面的最后一个方框,其实可以复制直接粘贴单VS的编辑器中,但是一些比较特殊的字符,复制到VS的编辑器中是不管用的,最后什么都看不到,对于那些我们就要用其他办法了。总之如果可以直接让其在VS编辑器当做字符显示出来,那就不要特殊方法了(其实很多字符我们可以通过一些搜狗输入法的,特殊字符选择)当我们要在word中输入选择框和打钩的选择框,我们可以这样:插入->符号->字体选择“Wingdings 2”。里面就有我 阅读全文
posted @ 2013-06-16 11:45 自由小菜园 阅读(10830) 评论(1) 推荐(1) 编辑
摘要: 之前我们采用Find.Replacement.Text的方式对word模板上的内容进行替换,Replacement是专门为文本替换而生,但是当我们替换的内容超过一定字符数会出现“字符串参量过长。”异常错误。所以本节我们采用TypeText('字符')来代替原来的Find.Replacement.Text,因为TypeText专职用来写文本用的,所以不会因为字符数影响。我们还是采用之前的例子,对用户的一个登记信息导入到word,有一个人信息介绍的单元格,该信息很容易超过500个字符姓名张三性别男籍贯浙江学历本科家庭地址浙江省未名市未名区未名街电话12345678省份证号12345 阅读全文
posted @ 2013-06-16 10:43 自由小菜园 阅读(3942) 评论(1) 推荐(0) 编辑
摘要: 姓名张三性别男籍贯浙江学历本科家庭地址浙江省未名市未名区未名街电话12345678省份证号123456789012345678假设我们需要将客户的信息导成word文档,其格式类似上面这样的。 我们可以先准备一个word模板,格式如下姓名{name}性别{sex}籍贯{provinve}学历{education}家庭地址{address}电话{telephone}省份证号{cardno}这里要替换的内容,我们可以定义成数据库中对应的字段,这里为了看上去清晰将要替换的内容用{字段}来代替,你也可以用其他你想要的方式来定义。接下来看实现的方式(记得首先在引用中添加相应的组件哦!) public... 阅读全文
posted @ 2013-06-16 03:42 自由小菜园 阅读(17627) 评论(4) 推荐(2) 编辑
摘要: 当我们对一个表建立一个主键时,默认会给该主键列添加一条聚集索引,这是数据库内部自动建立的,唯一性约束也会默认创建一个非聚集索引。create table MyTable( id int identity(1,1) primary key, name nvarchar(10) unique) exec sp_helpindex MyTable上面我们建立了一个主键id 和唯一性约束的name列,查看表可以看到这时产生了两个索引聚集索引是一个宝贵的资源,在一些表的中有时我们永远不会用到主键来作为查询条件,或者作为其他表的外键,这时主键的聚集索引就显得大才小用了,我们希望将聚集索引建立在其... 阅读全文
posted @ 2013-06-07 22:06 自由小菜园 阅读(11886) 评论(0) 推荐(0) 编辑
摘要: ASP.NET MVC的应用程序生命周期还是跟原来ASP.NET WebForm一样没有区别,只是引入MVC后,加了一个UrlRoutingModule模块,该模块用来捕获应用程序生命周期中的PostResolveRequestCache事件,当事件触发时然后选择合适的IHttpHandler来处理请求那是如何获取IHttpHandler的呢,我们在Global.asax的Application_Start事件中写routes.MapRoute注册路由时,会给路由对象Route创建一个MvcRouteHandler,该对象调用GetHttpHandler方法返回MvcHandler 对象用来处 阅读全文
posted @ 2013-04-27 01:24 自由小菜园 阅读(232) 评论(1) 推荐(0) 编辑
摘要: 举个简单的例子比如数据库中存在两列firstName,lastName。我们获取两列的合并结果一般直接sql就可以了select firstName + lastName from tableName不过利用DataTable中的表达式列也可以实现这样的效果,而且也很简单,看代码 DataTable table = new DataTable(); table.Columns.Add("firstName", typeof(string)); table.Columns.Add("lastName", typeof(string)); ... 阅读全文
posted @ 2013-04-12 21:55 自由小菜园 阅读(2290) 评论(0) 推荐(0) 编辑
摘要: 当对一个列表控件执行DataBind()会清空之前的所有数据项,因为很多时候如果加一个特殊项的话会选择在绑定完成后动态插入一条,就像下面这样//下面前台代码 <asp:DropDownList ID="ddlCity" runat="server"> <asp:ListItem Text="全部" Value="0" Selected="True"></asp:ListItem> </asp:DropDownList>//下面后台代码Diction 阅读全文
posted @ 2013-04-12 21:46 自由小菜园 阅读(1470) 评论(0) 推荐(0) 编辑