Welcome 微信登录

首页 / 软件开发 / C#

c#内存管理.

c#内存管理.

c#内存管理.2011-04-20尽管在.net framework中我们不太需要关注内存管理和垃圾回收这方面的问题,但是出于提高我们应用程序性能的目的,在我们的脑子里还是需要有这方面的意识。明白内存管理的基本行为将有助于我们解释我们程序中变量是如何操作的。在本文中我将讨论栈和堆的一些基本知识,变量的类型和某些变量的工作原理。当你在执行程序的时候内存中有两个地方用于存储程序变量。如果你还不知道,那么就来看看堆和栈的概念。堆和栈都是用于帮助我们程序运行的,包...
使用C#和Excel进行报表开发(1)

使用C#和Excel进行报表开发(1)

使用C#和Excel进行报表开发(1)2011-04-20目前的商业工具如水晶报表,ActiveReport等,都提供了灵活,强大的功能,但是对于比较特殊化的表格,特别是国内的一些应用,都是一个个的格子组成的,这样要是用线来一根根画就比较麻烦,但是这类工具还都不提供表格化的报表布局定义方式。一个很好的选择是VS2005的客户端报表(RDLC),但是在某几个方面还是不够灵活,例如,灵活性有限制,要想自己编码实现一些复杂逻辑还是有困难;要VS2005,对于一些...
使用C#和Excel进行报表开发(3)

使用C#和Excel进行报表开发(3)

使用C#和Excel进行报表开发(3)2011-04-20有的web项目选用Excel作为报表方案,在服务器端生成Excel文件,然后传送到客户端,由客户端进行打印。在国内的环境下,相对PDF方式,Excel的安装率应该比pdf阅读器的安装率要高,同时,微软也为C#操作Excel提供了完备的接口,虽然ZedGraph和其他的商业报表工具生成的统计图也很好,但是人家微软毕竟是大品牌,值得信赖。本文介绍使用C#调用Excel来生成统计图(Chart)的以及Ch...
使用C#和Excel进行报表开发(4)

使用C#和Excel进行报表开发(4)

使用C#和Excel进行报表开发(4)2011-04-20在用Excel作报表的时候,可能会碰到分页的情况,这样就要分成多个Sheet显示,如果要在每页都保留表头,就需要将第一页作为模板设计的表头部分拷贝到其他的Sheet上,这时就要用用到Excel中的单元格拷贝。下面的代码说明如何一个Sheet上的选定内容拷贝到另一个Sheet上:ThisApplication = new Excel.Application();ThisWorkbook = ThisA...
使用C#和Excel进行报表开发(7)

使用C#和Excel进行报表开发(7)

使用C#和Excel进行报表开发(7)2011-04-20在Excel中,如果某个单元格的内容是数字,且比较长,默认情况下,会变为科学计数发表示,例如:123456789123456000会被表示为1.2345E+17,为了能够将数字按照普通的格式完全表示,就需要设置单元格的属性 ,下面是例子代码:Excel.Application m_objExcel = null;Excel._Workbook m_objBook = null;Excel.Sheet...
使用C#和Excel进行报表开发(8)

使用C#和Excel进行报表开发(8)

使用C#和Excel进行报表开发(8)2011-04-20本文演示一个简单的办法,并使用程序将一个dataset中的内容填充到指定的格子中,目的是尽可能的通用,从而避免C#代码必须知道Excel文件中字段和内容的位置的情况。先制作一个简单的Excel文件作为模板,为了防止要填充的Cell中的内容和标题的内容一样,所以要填充内容的Cell中的内容是“$” + 字段名(要和DataTable中的列名一致),效果如图:创建一个Winfor...
C#调用Excel VBA宏

C#调用Excel VBA宏

C#调用Excel VBA宏2011-04-20网际浪人近日的一系列工作是做网站的营运维护,因此做了大量的支持工具。有Excel中写VBA的, 也有直接C#做的工具。有时需要在C#中执行Excel VBA宏,甚至有时还需要在执行了VBA宏之 后,获取返回值再进行相应的处理。为了使用方便,我写了一个执行Excel VBA宏的帮助类 。放在博客里做个备份也希望对有类似需求的朋友有所帮助。帮助类仅提供了一个方 法:RunExcelMacro参数说明:string...
C#使用BerkeleyDB操作简介

C#使用BerkeleyDB操作简介

C#使用BerkeleyDB操作简介2011-04-20Berkeley DB是历史悠久的嵌入式数据库系统,主要应用在UNIX/LINUX操作系统上。Berkeley DB的存储的是key/value键值对,可以理解为硬盘上的超级hash表。其可以管理256TB数据,而且能支撑几千个并发访问。目前Berkeley DB有C++版和Java版。所以,我们需要一个访问的中间转换,已经有人发布了C#的API。可以从 Berkeley DB for .NET 上面...
c#中static的用法详解

c#中static的用法详解

c#中static的用法详解2011-04-20C# static的全部用法收集整理static的全部用法要理解static,就必须要先理解另一个与之相对的关键字,很多人可能都还不知道有这个关键字,那就是auto,其实我们通常声明的不用static修饰的变量,都是auto的,因为它是默认的,就象short和long总是默认为int一样;我们通常声明一个变量:int a;string s;其实就是:auto int a;auto string s;而stat...
C#自定义数据详解

C#自定义数据详解

C#自定义数据详解2011-04-20C#语言有很多值得学习的地方,这里我们主要介绍C#自定义数据,包括介绍每一个由 DBObject派生的对象都拥有存储C#自定义数据的扩展字典等方面。我们将创建一个新的字典对象,它用来表示我们雇员就职的 ‘Acme 公司‘( 呵呵,当然是虚构的一家公司)的部门。这个“部门”字典对象将包含一个表示 部门经理的记录。我们还会加入代码到雇员创建过程,这个过程会加入一个索引到雇员工...
C#存取数据库中的图像

C#存取数据库中的图像

C#存取数据库中的图像2011-04-20一、数据库中的图像存取方法1. 读取image类型的数据读取image类型数据的方法可分为以下几步:1) 先使用无符号字节数组存放数据库对应的数据集中表的image类型字段的值。例如:byte[] bytes= (byte[]) image类型字段值2) 使用MemoryStream类,该类创建支持存储区为内存的流。即MemoryStream类创建的流以内存而不是磁盘或网络连接作为支持存储区。其构造函数为:publ...
C#之观察者模式

C#之观察者模式

C#之观察者模式2011-04-20观察者模式(Observer)完美的将观察者和被观察的对象分离开。举个例子,用户界面可以作为一个观察者,业务数据是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在界面上。面向对象设计的一个原则是:系统中的每个类将重点放在某一个功能上,而不是其他方面。一个对象只做一件事情,并且将他做好。观察者模式在模块之间划定了清晰的界限,提高了应用程序的可维护性和重用性。观察者模式有很多实现方式,从根本上说,该模式必须包含...
C#继承

C#继承

C#继承2011-04-20继承(C# 编程指南)类可以从其他类中继承。这是通过以下方式实现的:在声明类时,在类名称后放置一个冒 号,然后在冒号后指定要从中继承的类(即基类)。例如:public class A{ public A() { }}public class B : A{ public B() { }}新类(即派生类)将获取基类的所有非私有数据和行为以及新类为自己定义的所有其他数 据或行为。因此,新类具有两个有效类型:新类的类型和它继承的类的...
在C#中建立复杂的、灵活的SQL查询/命令

在C#中建立复杂的、灵活的SQL查询/命令

在C#中建立复杂的、灵活的SQL查询/命令2011-04-20SelectQueryBuilder类允许在你的代码中建立复杂的SQL语句和命令。它也能帮助于避免SQL注入式攻击。介绍承认,并且我们都这样作过,也认为下面的方式是最好的和唯一的方式。就是我们建立大量的字符串包含所有的Where子句,然后提交到数据库去执行它。来断的加语句到我们的SQL字符串,极有可能会带来Bugs和SQL注入式攻击的危险。并且也使得我们的代码更难看也不易于管理。这种情况必须停止...
浅析Java与C#的事件处理机制

浅析Java与C#的事件处理机制

浅析Java与C#的事件处理机制2011-04-20 天极 启航Java与C#的事件处理都是实现了事件源-事件响应者机制,但又不完全相同。Java实现的 是一种事件源与事件响应者两级实体对象方式,这里的事件响应者也是事件监听者,而C#实 现的是一种事件源-代理-事件响应者三级实体对象方式。下面就这两种方式来具体说明。Java事件处理从概念上讲,事件是一种在"源对象"和"监听 者对象"之间,某种状态发生变化的传递机制。...
C#多线程中lock的用法

C#多线程中lock的用法

C#多线程中lock的用法2011-04-20最近在看些c#的代码,发现很多是以前没有接触到了,只能上网查,把比较好的整理下来。经常碰到同时需要对某个数据进行操作,或者对某个文件进行读写操作,对于这些操作我们以前往往不能很好的进行处理,自从C#语言中引入了lock这个关键字,以上问题就比较容易予以解决了,下面就是一段简单的代码。public class AccessControl(){ private static object privateObj...
<< 171 172 173 174 175 176 177 178 179 180 >>