C#相关知识
灰太狼
这个作者很懒,什么都没留下…
展开
-
How to resolve Time_Wait issue when you use TcpListener and TcpClient
Issue description:If you use TcpListener and TcpClient to communicate, it will produce more Time_Wait status in socket pipe. I get the Tcp原创 2011-10-14 09:54:08 · 20081 阅读 · 3 评论 -
解决.Net Remoting无法传Stream类型参数的问题
利用.Net Remoting传Stream类型参数时,一般会报下面两个错误。1.如果是用TcpServerChannel(string name, int port);或是TcpServerChannel(int port);注册通道的话,会报下面这个错误:System.Runtime.Serialization.SerializationException: Because of s原创 2009-06-18 11:32:00 · 3256 阅读 · 1 评论 -
Remote BLOB Store
1. 介绍:Remote Blob Store(RBS)是一种把大容量二进制数据文件(Blob)从数据库转移到文件存储系统的解决方案。在RBS中,Blob数据被存储在存储解决方案中,像Content Addressable Store(CAS),带数据整合和存储纠错的硬件存储系统,或者是像msn blue那样的百万级服务存储解决方案。RBS对Blob的引用存储在数据中,调用 RBS客原创 2009-06-11 11:21:00 · 2948 阅读 · 0 评论 -
如何使用C#播放背景音乐
C#播放背景音乐通常有四种方式: 1.播放系统事件声音 2.使用System.Media.SoundPlayer播放wav 3.使用MCI Command String多媒体设备程序接口播放mp3,avi等 4.使用axWindowsMediaPlayer的COM组件来播放 1.播放系统事件声音 System.Media.SystemSounds.Asterisk.Play(); System原创 2009-08-06 14:13:00 · 6472 阅读 · 0 评论 -
使用.Net程序连接MySql数据库时,请注意你的License
MySql公司为.NET程序开发的MySQL Connector/Net组件可以方便的让.NET程序连接到Mysql,就像ADO.NET连接到SQL Server数据库一样方便好用。 但是请大家注意,MySQL Connector/Net是遵守GPL开源协议的。简单说,如果你开发的程序使用了MySQL Connector/Net组件,那么同时也意味着你同意遵守GPL协议,由于原创 2009-07-28 14:23:00 · 3842 阅读 · 2 评论 -
SQL Server 批量插入数据的两种方法
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters)。运行下面的脚本,建立测试数据库和表值参数。--Create DataBasecreate d原创 2009-07-18 17:58:00 · 168304 阅读 · 31 评论 -
在.net中使用Sqlite数据库
大家都知道用.net开发的程序一般都是使用Sql server数据库。但是在一些小项目上,却不适合。一来是没有必要为小项目而装sql server,二来是sql server的license太贵,不适合小项目使用。 一般的小项目我推荐使用MySql,Access和Sqlite。 Access在Xp以前的系统中可以直接使用,MySql在windows下需要一个30M的安装包原创 2009-03-11 15:33:00 · 4391 阅读 · 1 评论 -
MSDN无法显示问题的处理
首先确定msdn是否已经在注册表中注册过,执行如下命令,注意带“”regsvr32 "C:/Program Files/Common Files/Microsoft Shared/Help/hxds.dll"如果上步不起作用,看一下是不是IE的临时文件太多了,清理一下IE的临时文件,方法如下:点击Delete File,需要等几分钟,删除完成后,再启动MSDN。如果上步还无法原创 2008-07-18 13:03:00 · 2278 阅读 · 1 评论 -
区别C#中的两个属性(Property和Attribute)
区别C#中的两个属性(Property和Attribute) 在C#中有两个属性,分别为Property和Attribute,两个的中文意思都有特性、属性之间,但是用法上却不一样,为了区别,本文暂把Property称为特性,把Attribute称为属性。 Property比较简单,就是我们常用的get和se原创 2007-01-25 11:27:00 · 10527 阅读 · 3 评论 -
利用反射来动态创建实例和调用方法
利用反射来动态创建实例和调用方法 .NET的一个强大功能是它可以通过一种称为反射(reflection)的过程访问应用程序的元数据。简单地说,反射就是运行时查询类型信息的能力。.NET Reflection API 实际上是在System.Reflection命名空间中定义的一组类。这些类使你能够按逻辑方式查原创 2007-01-24 13:21:00 · 8771 阅读 · 1 评论 -
C#访问修饰符总结
C#共有五种访问修饰符:public、private、protected、internal、protected internal。作用范围如下表: 访问修饰符 说明 public 公有访问。不受任何限制。 private原创 2009-06-24 01:27:00 · 40024 阅读 · 20 评论 -
C#修饰符总结
C#中的修饰符被用来定义类型和成员方法,.Net3.5共有下面几种:修饰符说明Access Modifierspublic、private、protected、internal和protected internal。详见: http://blog.csdn.net/tjvictor/archive/2009/06/24/4293354.aspxabs原创 2009-06-25 12:19:00 · 2753 阅读 · 0 评论 -
C#中如何使用访问修饰符来修饰属性
<br />public string ID {get; private set;}<br />上面的属性对实例公开get方法,而在类里面可以使用set方法。<br />相应的internal, protected, internal protected都可以用来修饰属性。注意public不可以,因为默认就是public。<br />原创 2010-10-07 11:31:00 · 20235 阅读 · 1 评论 -
C#使用Create创建文件后,报The Process cannot access the file because it is being used by another process的异常
<br />今天使用File.Create("dddd.txt");后,打开这个文件时报The Process cannot access the file because it is being used by another process的异常。在网上找到解决方法如下:<br />File.Create("dddd").Close();<br />如果不Close(),那么这个文件一直被创建进程占着,直到创建进程被关闭。原创 2010-09-27 15:09:00 · 49068 阅读 · 6 评论 -
迟到的Top语句
with c as( select top 100 * from TestTable ) select * from c order by CreateTime desc 按照字面意思,我们需要先从TestTable上取前100条数据,再把这100条数据按时间倒序显示。可实际结果却是先按CreateTime倒序,然后取后100条数据。也就是说,我们需要的结果是100~1,但是实际结果却是999~900。原创 2010-06-04 11:57:00 · 23546 阅读 · 15 评论 -
设计模式---建造者模式
在Gof的23种设计模式中对Builder Pattern的定义是:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 从程序角度来说,就是在基类定义某种事物创建的过程或业务流程,在子类进行重写或是使用基类方法。这样创建出来的实例不会因为过程或流程的丢失而使业务失败。举例来说,我们要建一辆汽车,汽车需要车轮、方向盘、发动机、油门、刹车等上百个设计功能和流程。现在我需原创 2009-12-31 15:06:00 · 2392 阅读 · 8 评论 -
C#读取和写入配置文件
使用.Net2.0中的ConfigurationManager可以方便的实现对配置app.config的读取和写入。ConfigurationManager默认没有自动载入项目,使用前必须手动添加,方法如下:项目->引用->添加引用->选择System.configuration 1.使用ConfigurationManager读配置文件我们可以将简单的配置内容放到app.co原创 2009-12-03 16:29:00 · 11742 阅读 · 3 评论 -
SQL Server CLR全功略之五---CLR自定义数据类型
一、这是这个系列的最后一节了,自定义复杂数据类型目前只能通过CLR来实现。为了在 SQL Server 中运行,您的 UDT 必须实现 UDT 定义中的以下要求: 1.该 UDT 必须指定 Microsoft.SqlServer.Server.SqlUserDefinedTypeAttribute。System.SerializableAttribute 可选用,但建议使用。 2.U原创 2009-11-13 16:18:00 · 5246 阅读 · 7 评论 -
SQL Server CLR全功略之四---CLR触发器
CLR可以实现DML和DDL两种触发形式,但是本人一般不建议使用CLR的触发器,主要是考虑到效率问题。比如我们使用trigger来实现发mail等操作时,就要考虑pop3或是smtp等待时间,因为trigger本事就是个事务,也就是说,在smtp等待时间也算在了整个事务中,这样就会大大影响效率。1.CLR DML触发器DML指的是数据操作语言,也就是通常的insert,update和del原创 2009-11-10 21:23:00 · 8484 阅读 · 5 评论 -
SQL Server CLR全功略之三---CLR标量函数、表值函数和聚合函数(UDA)
本节主要介绍使用CLR创建标量函数,表值函数和聚合函数。所谓标量函数指的就是此函数只返回一个值。表值函数返回值是一个表。聚合函数是在select语句中使用的,用来聚合一个结果集,类似于Sum()或是Count()等内置的函数,而且真正的自定义聚合函数目前只能用CLR来实现。下面的例子使用了SQLServer自带的pubs数据库。1.CLR标量函数1.1无参函数 ///原创 2009-11-10 14:04:00 · 11973 阅读 · 4 评论 -
SQL Server CLR全功略之二---CLR存储过程
从这一节开始呢,我们就要开始CLR的编程之旅了。在这之前,我先把本节中需要了解的两个新类SqlDataRecord和SqlMetaData,及五个新方法SqlContext.Pipe.SendResultsStart,SqlContext.Pipe.SendResultsRow,SqlContext.Pipe.SendResultsEnd,SqlContext.Pipe.Send和SqlConte原创 2009-10-26 22:14:00 · 15075 阅读 · 2 评论 -
Winform DataGrid设计三步曲之三----如何改变DataGrid的背景色
Winform DataGrid设计三步曲之三 如何改变DataGrid的背景色 在用DataGrid作为表格显示数据的时候,有时往往需要根据数据的内容来显示不同的颜色,比如作告警列表时,不同的告警要用不同的颜色表示。修改DataGrid背景色的方法很多,这里原创 2007-01-22 13:41:00 · 6686 阅读 · 1 评论 -
Winform DataGrid设计三步曲之二------如何在DataGrid中加入ComboBox控件
Winform DataGrid设计三步曲之二 如何在DataGrid中加入ComboBox控件 C#类库中的DataGrid控件功能非常强大,基本上可以应对一般的表格处理,但是对于特殊的要求,比如在DataGrid中加入单选框(ChechBox)和多选下拉菜单(ComboBox)时就要自己写一些代码了,在原创 2007-01-22 11:25:00 · 6754 阅读 · 2 评论 -
C#命令行(CSC.EXE) 编译器选项(Framework 1.1)
C#命令行(CSC.EXE) 编译器选项(Framework 1.1) Microsoft Visual Studio .NET 2003 IDE在给我们编程带来方便的同时,也带给了我们无知,在没有vs2003的情况下怎么编译我们的C#文件呢?还是回到原始的命令行编译吧。下面我将把Framework1.1中的编译命令全部介原创 2006-12-13 18:08:00 · 6778 阅读 · 6 评论 -
如何在.NET程序中启动xp的视觉效果
如何在.NET程序中启动xp的视觉效果 Xp推出后,大家都被它的漂亮界面所折服,其实在我们的程序中也可以启动xp的视觉效果,让我们的程序更加好看。下面我就介绍两种在程序中应用xp视觉效果的方法。 方法一:使用EnableVisualStyles()这个方法。这个方法会为应用程序启用 Win原创 2006-12-06 11:20:00 · 3361 阅读 · 0 评论 -
如何判断键盘按下了哪个值?
在C#中的KeyCode和KeyValue可以获取你从键盘上输入的值。例如下面的例子:private void textBox3_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e){ textBox1.Text = e.KeyCode.ToString(); textBox2.Text原创 2006-07-03 17:02:00 · 6921 阅读 · 0 评论 -
windows form (窗体) 之间传值小结
在windows form之间传值,我总结了有四个方法:全局变量、属性、窗体构造函数和delegate。第一个全局变量:这个最简单,只要把变量描述成static就可以了,在form2中直接引用form1的变量,代码如下:在form1中定义一个static变量public static int i= 9 ;Form2中的钮扣按钮如下:private void button1_Cl原创 2006-06-23 10:10:00 · 20795 阅读 · 5 评论 -
怎么在thread中打开一个窗体
有很多朋友不知道怎么在thread中打开一个窗体,总是说没有反应,下面我就说说这方面自己的经验。代码如下: private void ThreadFunc(){ //run your coding; Form temp = new Form(); temp.Show(); //run your coding;}private void b原创 2006-06-21 13:24:00 · 2391 阅读 · 2 评论 -
如何使MDI子窗体不重复被打开
有很多朋友希望MDI子窗体不重复被打开,如果子窗体已经被创建了,则把它激活,而不是又创建了一个MDI子窗体,其实中C#提供的MdiChildren这个属性就可以解决这个问题,下面假设一个treeview控件,点击treeview上面的相应结点,就会创建以这个结点命名的MDI子窗体,若是子窗体已经被创建,则把它激活,显示在所有子窗体的最前面。代码如下:private void treeView_原创 2006-06-21 13:22:00 · 6175 阅读 · 3 评论 -
使用GDI+时关于窗体重绘的问题
用GDI+对窗体(Form)进行绘图(就是画圆等操作,用Graphics来做的),代码如下:private void button1_Click(object sender, System.EventArgs e){ System.Drawing.Graphics g = this.CreateGraphics(); g.FillEllipse( Brushes.Red原创 2006-06-19 11:16:00 · 6365 阅读 · 1 评论 -
窗体间利用属性(property)来传递值时应注意的问题。
这也许是个老话题了,但是今天我在用property 时却有了新的发现。那就是如果传递的是类的话,那么是按地址(引用)来传递的。例如如下两个程序。假设有两个form,form1、form2和一个Class1.cs的类文件。form1是程序的开始窗体,通过form1 来调用form2 。程序如下:Class1.cs文件的内容是public class Class1 { public int i;原创 2006-06-04 14:29:00 · 13671 阅读 · 3 评论 -
Microsoft Visual Studio .NET 2003 IDE 快捷键
“全局”快捷键下列快捷组合键可用于集成开发环境 (IDE) 中的不同位置。命令名 + 快捷键 + 说明编辑.复制CTRL + CCTRL + INSERT 将当前选定的项复制到系统剪贴板。编辑.剪切CTRL + XSHIFT + DELETE 将当前选定的项移除到系统剪贴板。编辑.循环应用剪贴板中的复制项CTRL + SHIFT + INSCTRL + SHIFT原创 2006-12-13 16:36:00 · 3261 阅读 · 2 评论 -
61条面向对象设计的经验原则---Arthur J.Riel
61条面向对象设计的经验原则 作者:Arthur J.Riel “你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起。” -------转载 2006-12-14 11:29:00 · 1706 阅读 · 0 评论 -
如何使窗体不重复被打开
如何使窗体不重复被打开 要使窗体不被重复打开,就要把已经打开的窗体保存下来进行轮寻,我们可以用ArrayList来保存已经打开的窗体实例,当new新的form时,对ArrayList中的Object进行逐个的比较,可以对form的name进行比较,也可以对form的Type进行比较(前者的效率原创 2007-01-18 10:41:00 · 5026 阅读 · 2 评论 -
Winform DataGrid设计三步曲之一-----DataGrid如何动态实现多种风格(TableStyle)之间的转换
Winform DataGrid设计三步曲之一 DataGrid如何动态实现多种风格(Style)之间的转换 DataGrid多用来把数据库中的数据以表格的形式表示出来,初学者的一般做法是用sqlConnection连接数据库后,把数据缓冲到DataSet中,原创 2007-01-20 17:06:00 · 8204 阅读 · 1 评论 -
区分计算机各个部件的用途
区分计算机各个部件的用途 本文主要是针对没有计算机基础的人。我只是把计算机上的各个部件的用途大致说一下,不会涉及太深的东西。 计算机中最重要的部件就是中央处理器,也就是我们通常所说的CPU。它是处理数据的部件,要处理数据就要把数据先存在一个地方,然后再一个一个的处理。早期数原创 2007-02-07 14:41:00 · 3761 阅读 · 0 评论 -
Winform中多国语言窗体的设计以及.NET中资源文件的使用
Winform中多国语言窗体的设计以及.NET中资源文件的使用 最近在做一些多国语言的软件,就学习了一下.NET中的多国语言相应知识,受益不少,下面我就简单介绍一下winform中关于多国语言的实现方法。分为七个部分来讲:资源文件概述、资源文件的分类、资源文件的创建、利用IDE来制作多国语言版本、利用资源文件来做多国语言版本、常用.NET资源文件生成器的使用和总结这七个部分。原创 2006-12-27 11:50:00 · 10800 阅读 · 8 评论 -
.NET 程序的命名规则
.NET 程序的命名规则(选自msdn) 一致的命名模式是托管类库中可预知性与可发现性最重要的元素之一。对这些命名指南广泛的使用和理解将消除许多最常见的用户问题。本主题提供.NET Framework 类型的命名指南。对于每个类型,还应该注意关于大写样式、区分大小写和措词的一些通用规则。1原创 2006-12-26 11:50:00 · 3580 阅读 · 0 评论 -
ADO.NET 命名规则参考
ADO.NET 命名规则参考 类型 前缀 Connection con Command cmd转载 2006-12-26 11:13:00 · 1312 阅读 · 0 评论 -
设计登录窗体的问题
最近在csdn上总是看见关于登录窗体的问题,这在csdn上已经是老问题了,所以现在介绍一个方法。 在winform中,程序总是从main函数开始的,main中的Application.Run( new form1() );就是主窗体启动的位置,所以你可以把登录窗体放在这条语句的前面,然后判断是否满足登录条件。程序如下: s原创 2006-12-25 10:52:00 · 4090 阅读 · 6 评论