2011年4月29日

关于C#调用Excel的资源占用问题

摘要: 无意中想起2年前做的一个小项目,自己也遇到过Excel的进程无法结束掉的这种怪问题,最终还是解决了,其实解决的原理很简单,Excel是一个很特殊的东西,所有对它的操作都是独占的,因此就有必要在资源释放上严格进行。为了更好的跟大家交流,也同时帮助那些正在被困惑的程序员朋友们,下面就附上我以前的一段小代码,为了能够更快更容易说明问题,代码经过了删减,只保存了结构的完整性,但不保证能够顺利编译通过,代码如下:需要引用的命名空间using Execl = Microsoft.Office.Interop.Excel; CodeCode highlighting produced by Actipro 阅读全文

posted @ 2011-04-29 14:04 seoxs 阅读(889) 评论(0) 推荐(0) 编辑

C#.net同步异步SOCKET通讯和多线程总结

摘要: 同步套接字通信 Socket支持下的网上点对点的通信 服务端实现监听连接,客户端实现发送连接请求,建立连接后进行发送和接收数据的功能 服务器端建立一个socket,设置好本机的ip和监听的端口与socket进行绑定,开始监听连接请求,当接收到连接请求后,发送确认,同客户端建立连接,开始与客户端进行通信。 客户端建立一个socket,设置好服务器端的IP和提供服务的端口,发出连接请求,接收到服务的确认后,尽力连接,开始与服务器进行通信。 服务器端和客户端的连接及它们之间的数据传送均采用同步方式。 Socket Socket是tcp\ip网络协议接口。内部定义了许多的函数和例程。可以看成是网络通信 阅读全文

posted @ 2011-04-29 14:02 seoxs 阅读(767) 评论(0) 推荐(0) 编辑

如何用C#设置IE的代理

摘要: 1privatevoidbutton3_Click(objectsender,EventArgse)2{3//打开注册表键4Microsoft.Win32.RegistryKeyrk=Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\InternetSettings",true);56//设置代理可用7rk.SetValue("ProxyEnable",1);8//设置代理IP和端口9rk.SetValue("P 阅读全文

posted @ 2011-04-29 13:56 seoxs 阅读(499) 评论(0) 推荐(0) 编辑

C# 里面的 #region 是什么意思?

摘要: #region 是 C#预处理器指令。#region 是一个分块预处理命令,它主要是用于编辑器代码的分块,在编译时会被自动删除。#region 使您可以在使用VisualStudio代码编辑器的大纲显示功能时指定可展开或折叠的代码块。例如:MyClassdefinition#regionMyClassdefinitionpublicclassMyClass{staticvoidMain()//www.elivn.com{}}#endregion备注:#region块必须以#endregion指令终止。#region块不能与#if块重叠。但是,可以将#region块嵌套在#if块内,或将#if块 阅读全文

posted @ 2011-04-29 13:51 seoxs 阅读(959) 评论(1) 推荐(0) 编辑

c#中为什么又重新使用了goto语句

摘要: 对于goto语句,在c/c++中就已经被不推荐使用了,在java中根本就没有goto的存在了,为什么c#中又重新使用goto语句呢?首先了解一下c#中的goto语句用法:1)基本的作用还是和以前一样,用户跳到Label的地方执行语句。//exp1有效代码{{gotolabelA;}labelA:}2)但是在c#中,goto只允许在一个语句块内跳出,或者在一个语句块内的一个地方跳到另一个地方;3)不允许goto从一个语句块外面跳入一个语句块内部的。//exp2.1有效代码//goto在同语句块内跳转{{gotolabelA;labelA:}}//exp2.2无效代码//goto从语句块外跳入语句 阅读全文

posted @ 2011-04-29 10:29 seoxs 阅读(753) 评论(0) 推荐(0) 编辑

C# String与string的区别

摘要: C#中同时存在String与stringMSDN中对string的说明: string is an alias for String in the .NET Framework。string是String的别名而已,string是c#中的类,String是Framework的类,C# string 映射为 Framework的 String。如果用string,编译器会把它编译成String,所以如果直接用String就可以让编译器少做一点点工作。 如果使用C#,建议使用string,比较符合规范 。 string始终代表 System.String(1.x) 或 ::System.Strin 阅读全文

posted @ 2011-04-29 10:24 seoxs 阅读(434) 评论(0) 推荐(0) 编辑

在 C# 中 ("x" == "X") 何时成立?

摘要: 这个问题初看起来很奇怪,C#就是C#啊,一门严谨的语言,并且字符串是区分大小写的,无论是在什么情况下都有("x" != "X"),这才叫做一致性嘛。事实上,这在以前一直都是成立的,直到.NET Framework 3.5引入了Linq to Sql,这种一致性就被破坏掉了,变成依赖于环境配置了。想象一下我们对一个Linq to Sql的DataObject编写一个Linq查询,并且where子句包括("x" == "X"),那么该子句会返回true还是false呢?事实上,该查询虽然是一个用C#编写的lamda表达 阅读全文

posted @ 2011-04-29 10:22 seoxs 阅读(409) 评论(0) 推荐(0) 编辑

网络攻击程序(C#版)

摘要: 记得有一天发现有一个ip从早上到下午一直在向我的3076端口发送udp包攻击日志一直把天网给活生生的撑破了,天网被日志填满自动关闭。气氛之下写了一个反击的程序,代码如下:using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading; 阅读全文

posted @ 2011-04-29 10:13 seoxs 阅读(691) 评论(0) 推荐(0) 编辑

2011年4月28日

C#编程中关于数据缓存的经验总结

摘要: 一直以来,我都发现程序的运行速度不够理想。通过查代码,发现程序对数据库的访问非常频繁,而且检索出来的数据量比较大。为了让程序运行快起来,我想对程序采用适当的缓存方法。我在C#尝试了5种方法进行数据缓存,具体如下:(如有遗漏,错误欢迎大家指正,欢迎提建议。)1:Session方法:此方法是针对于每个用户来的,如果用户量比较大,那么建议不要采用此方法,否则会大量耗尽服务器资源。2:Cache方法: 2.1:对于每个用户来说访问的数据最好是一致的,否则要用不同的key标识不同的缓存。(要缓存的数据至少也是按用户类型来分的,如果每个用户可以按条件检索得到不同的数据的话,即使不造成数据混乱,估计也跟se 阅读全文

posted @ 2011-04-28 16:15 seoxs 阅读(564) 评论(3) 推荐(1) 编辑

c#条件编译

摘要: 条件编译指令用于按条件包含或排除源文件中的某些部分。按照语法的规定,条件编译指令必须写成集的形式,集的组成依次为:一个 #if 指令、一个或多个 #elif 指令(或没有)、一个或多个 #else 指令(或没有)和一个 #endif 指令。指令之间是源代码的条件节。每节代码直接位于它前面的那个指令控制。条件节本身可以包含嵌套的条件编译指令,前提是这些指令构成完整的指令集。1#defineDebug//Debuggingon2#undefTrace//Tracingoff3classPurchaseTransaction4{5voidCommit(){6#ifDebug7CheckConsist 阅读全文

posted @ 2011-04-28 15:52 seoxs 阅读(521) 评论(0) 推荐(0) 编辑

导航