自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DCSOFT

www.dcsoft.org

  • 博客(37)
  • 收藏
  • 关注

原创 ExcelMail

ExcelMailwww.dcsoft.cnV 2.42007-02-061、邮件正文改成3个段落,3个段落之间是换行。ExcelMailwww.dcsoft.cnV 2.22007-01-231、同一附件只编译一次,大量节省了时间和系统开销。2、使用多线程处理,程序更强壮。ExcelMailwww.dcsoft.cnV 2.02006-12-251、改变了程序架构,加大内存使

2006-12-21 10:32:00 2055

原创 C#的SMTP

.NET 2.0否决了原来的System.Web.Mail,而启用新的命名空间System.Net.Mail。注意要实现SMTP时,别忘了using System.Net;和using System.Net.Mail;下面看SMTP的核心代码public bool SendEmail(string strServerAddress,string strServerPort,string

2006-12-19 20:17:00 1751

原创 导航栏技术

1、网站都有导航栏,而导航栏代码基本上是每页重复的,那么每页都要重新写一遍导航栏代码吗?答案是否的,不论是制作过程,还是维护过程,都相当麻烦。2、不依赖于服务器端,实现代码复用。那就是js。先把导航栏的代码用html写出来,然后用Html-Js转换工具转成js代码,参考网站:http://tool.chinaz.com/Trans/Html_Js.asp ,然后把这段代码保存为*.js放到网站

2006-12-18 23:16:00 1740 1

原创 IIS6的SMTP

1、安装。Windows2003的IIS6集成了SMTP服务,非常好用,不过默认没有安装,请安装之。开始-〉设置-〉控制面板-〉添加或删除程序-〉添加/删除Windows组件-〉应用程序服务器-〉Internet信息服务(IIS)-〉SMTP Service,打勾,然后确定到底。2、配置SMTP服务器。开始-〉设置-〉控制面板-〉管理工具-〉Internet信息服务(IIS)管理器-〉展开本地

2006-12-18 22:46:00 5032 2

原创 C#范型入门

范型是Microsoft.NET 2.0里面一个新加的内容,它使得C#语言更加完美。鉴于范型这个概念炒作炒得太虚,而缺少实际例子,使得很多菜鸟搞不懂这个概念,所以我来详细说明1个例子程序,大家就能明白了。一、首先在VS2005环境里面新建一个控制台应用程序(Console)二、完成如下代码:static void Main(string[] args){    PrintInt(1);  

2006-11-15 17:04:00 3640 2

原创 绕过复杂概念实现多线程

绕过复杂概念实现多线程比如说你要做UDP通讯,监听方法肯定是阻塞的,放到界面主线程肯定会死的。解决方法要么多线程,要么异步,说实话,代码确实够复杂的,菜鸟绝对做不来的。怎么办呢?Visual C# 2005 左边的工具栏里面有一个新东西:BackgroundWorker,下面我就告诉你怎么用这东西,通过简单的托拽,实现多线程。1、首先,拽过来一个BackgroundWorker2、双击Back

2006-11-10 11:46:00 1368

原创 简单UDP收发示例

一、UDP发送数据包IPAddress ip = IPAddress.Parse("192.168.1.255");//定义发送的目的IP地址,192.168.1.255表示广播,你也可以改成其他IPint port = 11000;//定义发送目的端口号,建议选用1024-65535之间没用过的端口UdpClient udp = new UdpClient();//定义UDP类IPEnd

2006-10-31 17:07:00 5413

原创 TSQL结果集的分页

如果你要做一系列物品的分页列表,就一定会用到“TSQL结果集的分页”或者相似的概念。比如一共有99个物品,一页显示9个,那么你在读取的时候要把99个全读出来吗?绝对不行!因为当前页只需要9个,其它的90个全是浪费,既浪费时间又消耗资源,傻子才会这么做!大家一定知道TSQL里面有个TOP函数,它能取结果集的前xx个,就用它,我们就能实现用多少取多少的目的。逻辑是这样的:第1页取1-9个数据;第2

2006-08-28 10:13:00 1555

原创 不用存储过程一样参数传递

用SQLServer的存储过程,一是可以提高访问效率,二是可以杜绝SQL注入攻击。但是如果要在SQLServer里面写入大量的存储过程、数据逻辑、甚至是业务逻辑,这就会给整个系统的移植、修改带来了大量麻烦。那么有什么办法可以既不是用存储过程,又可以杜绝SQL注入攻击呢?答案就是把“存储过程”写在程序里!废话少说,看代码:SqlConnection con = new SqlConnecti

2006-08-26 10:31:00 1204

原创 方便的制造连接字符串

在.NET中,推荐使用配置文件来存放数据库连接字符串,如Web.config或App.config。如下:configuration>appSettings>    add key="SqlServerName" value="(local)"/>    add key="SqlServerPort" value="1433"/>    add key="SqlServerUID" val

2006-08-26 10:08:00 1769

原创 SQLXLS 4.4

SQLXLS 4.4DCSOFT2005年8月20日1、主要功能:SQLServer与Excel之间的数据转换2、运行环境要求:Microsoft.NET 1.1 + SQLServer2000 + Excel20033、安装:本软件为绿色软件,在WinXP SP2和Win2003系统下,不用安装,直接运行即可;其他系统下运行,需要先安装Microsoft.NET 1.1才能运行,之前安装

2006-08-21 21:23:00 1232 1

原创 Win闹钟

Win闹钟V1.0运行环境:Microsoft.NET 2.0跟普通闹钟一样,没啥特别的~ 安装步骤:1、下载并安装Microsoft.NET 2.0运行时,如果您以前安装过,则不必再次安装。http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/do

2006-08-21 21:22:00 1273 1

原创 Windows批量改名程序

Windows批量改名程序DCSOFTV1.02005年8月22日这个版本应该算是测试版,基本功能完成了,但是还有很多小地方需要修正。 安装步骤:1、下载并安装Microsoft.NET 1.1运行时,如果您以前安装过,则不必再次安装。http://download.microsoft.com/download/7/b/9/7b90644d-1af0-42b

2006-08-21 21:22:00 1483

原创 电猫连接者

电猫连接者V1.4PLCLinker V1.4(已经不使用中电飞华宽带,该软件停止更新)电猫-中电飞华宽带的拨号程序,使用方便。1.4版 加入了服务器IP地址,可用于不同地区的中电飞华用户使用。 安装步骤:1、下载并安装Microsoft.NET 2.0运行时,如果您以前安装过,则不必再次安装。http://download.microsoft.com/do

2006-08-21 21:20:00 1562

原创 电猫守护者

电猫守护者 V1.1PLCKeeper V1.1(已经不使用中电飞华宽带,该软件停止更新)与电猫连接者配套的程序,可以实现中电飞华宽带的断线自动重拨功能,无需人工干预。是中电飞华用户BT、电骡的必备软件。 安装步骤:1、下载并安装Microsoft.NET 2.0运行时,如果您以前安装过,则不必再次安装。http://download.microsoft.c

2006-08-21 21:20:00 1257

原创 随机密码生成器

随机密码生成器V2.42006年3月5日发布运行环境:Microsoft.NET 1.1这是一个生成随机乱码的软件,可以应用到很多领域,有很多用途。比如说,生成一个随机密码,防止暴力破解;生成一个随机邮箱地址,防止垃圾邮件……等等。 安装步骤:1、下载并安装Microsoft.NET 1.1运行时,如果您以前安装过,则不必再次安装。http://download.m

2006-08-21 21:18:00 1693

原创 启动用户实例的进程时出错

我相信很多人在使用ASP.NET 2.0 + SQL2005 + aspnetdb(MemberShip等功能)时出现这个问题:“由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。”,其英文版本的相同问题的错误信息是:“Failed to generate a user instance of SQL Server due to a failure in

2006-08-21 21:15:00 1238

原创 .NET的应用程序配置文件

WinForm有App.config,WebForm有Web.config,都是为了程序的灵活性而设计的,配置文件里面可以储存程序运行的参数,以xml的形式彻底代替了ini文件。不论是WinForm还是WebForm,.NET的配置文件写法和读取方式都是统一的:Web.config/App.config          读取配置文件先using System.Configuratio

2006-08-21 21:15:00 2125

原创 ASP.NET URL重定向技术

别看题目挺深奥,其实这项技术说白了就是:用虚拟路径代替URL参数来执行aspx页。URL参数大家都应该明白怎么回事吧,比如http://spaces.msn.com/blog.aspx?name=dcsoft, name就是参数,参数值是dcsoft,然后交给blog.aspx处理,blog.aspx能读取这些参数。虚拟路径是什么呢,博客大家都用过吧,比如http://spaces.msn.com

2006-08-21 21:14:00 4693 1

原创 全局变量与static

C#是没有全局变量的,C#设计者弄了一个叫Singleton的模式,用static可以当作全局变量来用。请看下面的类:class Class1{        public int intNum = 0;        public static int intNum2 = 9;}众所周知,我们在主类里面要想引用这个类,必须先Class1 c1 = new Class1();要想c1.intNum

2006-08-21 21:13:00 1269

原创 C#与打印机的故事

作为输出设备,打印机的地位不亚于显示器。编个C#程序显示在显示器上,这是司空见惯的,但是编个C#程序,输出在打印机上,很多人就不会了,下面我来讲讲C#与打印机的故事。也许大家有看到,VS环境左边的工具栏有5个打印专用的控件,也许是因为控件太多了,弄不清哪个控件是干啥用的,找不到头绪,其实很简单~~听我的。你只需要记住2个控件,就可以很好的进行打印输出工作了。一、PrintDocument这是整个.

2006-08-21 21:12:00 2045

原创 C#遍历目录树的递归

众所周知,获得某一目录下第一级的所有文件和文件夹列表,很容易办到:DirectoryInfo di=new DirectoryInfo(strBaseDir);//strBaseDir是起始目录,绝对地址DirectoryInfo[] diA=di.GetDirectories();//获得了所有一级子目录FileInfo[] fiA=di.GetFiles();//获得了所有起始目录下的文件

2006-08-21 21:11:00 4599

原创 C#获得图片尺寸像素值

什么东西神通广大?能获得1个图片的尺寸像素值呢?这就是C#的System.Drawing.Image类。废话少说,看代码:Image pic=Image.FromFile(strFilePath);//strFilePath是该图片的绝对路径int intWidth=pic.Width;//长度像素值int intHeight=pic.Height;//高度像素值 

2006-08-21 21:10:00 10933 6

原创 C#异步中级

异步回调,是异步操作里面的重要方法,也是异步操作较高级、较难的概念。下面听我细细道来:1、明确概念我们为什么要进行异步回调?众所周知,普通方法运行,是单线程的,如果中途有大型操作(如:读取大文件,大批量操作数据库,网络传输等),都会导致方法阻塞,表现在界面上就是,程序卡或者死掉,界面元素不动了,不响应了。异步方法很好的解决了这些问题,异步执行某个方法,程序立即开辟一个新线程去运行你的方法,主线程包

2006-08-21 21:09:00 2445

原创 C#异步初步

//首先准备好,要进行异步的方法(能异步的,最好不多线程)private string MethodName(int Num, out int Num2){        Num2 = Num;        return "HelloWorld";} //定义与方法同签名的委托private delegate string DelegateName(int Num,out int Num2)

2006-08-21 21:08:00 3197 1

原创 TcpListener类获得客户连接的IP地址

用TcpListener类作为服务端,TcpClient类作为客户端,进行通讯的话,似乎很难获得客户端的IP地址,以下经验,是我经历千辛万苦得来的,请大家捧场~1、如果客户端先用Dns.GetHostName()获得计算机名,然后 Dns.GetHostAddresses(Dns.GetHostName())获得IP列表的话,是不容易得到真实IP的,原因是:IP列表里面肯定有127.0.0.1

2006-08-21 21:03:00 3065

原创 C#的TCP通信

.NET的UDP通信我死活玩不转,听说UDP库类有bug,所以我就不瞎折腾了,精力转向TCP。TCP是连接模型,如下:服务器连接                     服务器断开    ↓                                   ↑服务器接收→服务器处理→服务器发送    ↑                                   ↓客户端发送←客户端

2006-08-21 21:02:00 5535

原创 C#的哈希

哈希算法是啥?哈希英文hash,是一种数学算法,它能把任意长度的值转换成固定长度的值,而且映射关系唯一并算法不可逆,理论上不拿到原值,是不可能得到对应的哈希值的,但是这都是历史了,中国科学院的王小云已经初步破解了基于哈希算法的MD5和SHA1算法,所以.NET库里面能够安全使用的估计只有SHA256Managed、SHA384Managed、SHA512Managed了,不过这些东西也只是基于SH

2006-08-21 21:01:00 1483

原创 .NET的编译保护与反编译

众所周知.NET编译到il中间语言,这就使得能看懂il中间语言的破解者,破解该软件,幸好VS2003提供了Dotfuscator用来混淆il代码,使得破解者很难反编译,具体原理就不说了,自己看帮助去吧。下面我们来试验:做一个.NET的exe程序,然后打开Dotfuscator,新建项目-〉触发器-〉浏览,选中这个exe生成选项卡-〉目标目录-〉浏览,选择一个目录来存放混乱后的exe-〉点击生成按钮

2006-08-21 21:00:00 1387

原创 .NET C# DES入门

DES加密应该是最基础的加密算法,为了搞清楚它在.NET C#里面的用法,我费了不少功夫,希望有心人能看到。DES一共就有4个参数参与运作:明文、密文、密钥、向量。为了初学者容易理解,可以把4个参数的关系写成:密文=明文+密钥+向量;明文=密文-密钥-向量。为什么要向量这个参数呢?因为如果有一篇文章,有几个词重复,那么这个词加上密钥形成的密文,仍然会重复,这给破解者有机可乘,破解者可以根据重复的内

2006-08-21 20:59:00 2756 1

原创 string与byte[]之间的转换

在使用.NET加密类的时候,会经常用到string与byte[]之间的转换。首先引用System.Text命名空间,然后UnicodeEncoding unicode=new UnicodeEncoding();byte[] byteA; //byte[] -> stringbyteA=unicode.GetBytes(textBox1.Text); //strin

2006-08-21 20:58:00 2000

原创 数组如何作为方法的参数

数组作为方法的参数,一共有3种形式:1、public void Test(params int[] list){}最正宗的使用方法,也是最没用的使用方法。一旦使用params参数,此方法就不能再有其它参数了,并且只能有1个params参数。 2、public void Test(ref string[] strValueArr){}最常用的传址调用,使用此方

2006-08-21 20:57:00 1638

原创 C#三斜线的妙用

只要在方法名的上一行连续输入“///”,即可自动生成此方法的文档注释标记,把它填写完整,下次调用此方法的时候,就很方便了,如下所示:/// /// 写INI文件/// /// 文件名/// 文本行内容数组public void WriteINI(string strINIFileName, ref string[] strLineContentArr){    //获得行数    int 

2006-08-21 20:56:00 4650

原创 如何感知“文件是否存在”?

首先要using System.IO;然后 FileInfo FI=new FileInfo("Config.ini");最后通过 FI.Exists.ToString(); 来判断是否存在,True是存在,False是不存在。

2006-08-21 20:54:00 1168

原创 如何用C#改文件名

文件处理,属于System.IO命名空间里面,一定要using一下。改名方法是File.Move(源文件名,目标文件名),可以包括路径。 

2006-08-21 20:50:00 13226

原创 多线程只需要2行代码

System.Threading.Thread oThread=new System.Threading.Thread(new System.Threading.ThreadStart(MethodName));//定义要执行多线程的方法,注意,方法名没有参数oThread.Start();//包含该方法的线程启动 //注意,该线程如果完成操作,资源会由系统自动回收,你不用考虑

2006-08-21 20:48:00 1286

原创 最精简的委托示例

//最精简的委托示例delegate void dg1(string str1);private void button1_Click(object sender, EventArgs e){    dg1 dg2 = new dg1(Show);    dg2("Successful");}private void Show(string strShow){    MessageBox.Sh

2006-08-21 20:19:00 1406 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除