2010年8月31日
摘要: ////////////////////////////////////////////////////////////////////////////////////////// /* 标题:在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分 当看到.NET中TcpListener和TcpClient的时候,我非常高兴,那就是我想要的通讯... 阅读全文
posted @ 2010-08-31 21:09 wenbing 阅读(1798) 评论(2) 推荐(0) 编辑
  2010年8月30日
摘要: 一.获取当前函数名: class Program { static void Main(string[] args) { Console.WriteLine(test()); } static string Test() { var st = new System.Diagnostics.StackTrace(); ... 阅读全文
posted @ 2010-08-30 18:39 wenbing 阅读(3212) 评论(1) 推荐(0) 编辑
摘要: 查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8、sp_lock,sp_who,活动的用户查看,原因是... 阅读全文
posted @ 2010-08-30 18:35 wenbing 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 在利用Socket 进行Tcp/Ip 编程的时候,免不了要进行数据的发送和接收,而数据的接收,用得最多的就是 Socket 的同步函数 Receive (或它的重载): public int Receive ( byte[] buffer, int offset, int size, SocketFlags socketFlags ) 或者是异步函数 BeginRe... 阅读全文
posted @ 2010-08-30 18:24 wenbing 阅读(5615) 评论(0) 推荐(0) 编辑
摘要: 从这个 sql 语句我学到的东西:1、case when ... then ... else ... end :选择语句用在 select 语句中,可以将原来用0,1这样的描述信息,转换为实际的含义,而不要在程序中根据查询出来的结果再进行判断。这个可以理解为简单的数据格式化吧。如这条sql 语句中出现的 case when a.isnullable = 1 then '√' else '' end... 阅读全文
posted @ 2010-08-30 18:21 wenbing 阅读(974) 评论(0) 推荐(0) 编辑
摘要: (1)BCD码(二到十进制编码) 人们通常习惯使用十进制数,而计算机内部多采用二进制表示和处理数值数据, 因此在计算机输入和输出数据时,就要进行由十进制到二进制的转换处理。 把十进制数的每一位分别写成二进制形式的编码,称为二进制编码的十进制数, 即二到十进制编码或BCD(Binary Coded Decimal)编码。 BCD码编码方法很多,通常采用8421编码,这种编码方法最自然简... 阅读全文
posted @ 2010-08-30 18:18 wenbing 阅读(3995) 评论(1) 推荐(1) 编辑
摘要: int类型的数据转化为uint类型: 因为int是带符号的类型,当int是正数时,int类型数据转化为uint时不发生改变。 当int是负数时,int类型数据转化为uint类型时,值就要发生变化。 但转化的过程并不是去掉前面的负号,例如 int a=-1; uint b=(uint)a; 这时b的结 阅读全文
posted @ 2010-08-30 18:17 wenbing 阅读(2614) 评论(0) 推荐(0) 编辑
摘要: A.WinForm中窗体显示显示窗体可以有以下2种方法:Form.ShowDialog方法 (窗体显示为模式窗体)Form.Show方法 (窗体显示为无模式窗体) 2者具体区别如下:1.在调用Form.Show方法后,Show方法后面的代码会立即执行2.在调用Form.ShowDialog方法后,直到关闭对话框后,才执行此方法后面的代码3.当窗体显示为模式窗体时,单击“关闭”按钮会隐藏窗体,并将D... 阅读全文
posted @ 2010-08-30 18:15 wenbing 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 大家都知道,在水晶报表里,小数点的保留是个比较讨厌的问题。因为在数字字段的格式化中,小数点格式化的位数是固定的。也就是说要么保留两位,要么保留三位……,要么一位都不保留。其实在很多时候,客户更希望的是服务器端是几位就保留几位。曾经有N 个人问过我这个问题如何解决,今天又有人问了,干脆写了一个函数解决这个问题,以后再有客户有这样的需求,直接套用这个函数就行了。其实我以前也说过,解决这个问题有一个方法... 阅读全文
posted @ 2010-08-30 18:11 wenbing 阅读(1539) 评论(0) 推荐(0) 编辑
摘要: 1、发布与订阅 用强制订阅实现数据库同步操作 大量和批量的数据可以用数据库的同步机制处理: // 说明: 发布服务器(分发)操作,订阅服务器(订阅)操作 在客户机器使用强制订阅方式。 测试通过 // --1:环境 服务器环境( 发布): 机器名称: devserver 操作系统:Windows 2003 Server 数据库版本:SQL 2005 Server 企业版 客... 阅读全文
posted @ 2010-08-30 18:08 wenbing 阅读(747) 评论(0) 推荐(0) 编辑
摘要: 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t w... 阅读全文
posted @ 2010-08-30 18:07 wenbing 阅读(232) 评论(0) 推荐(1) 编辑
摘要: 大家都在讨论关于数据库优化方面的东东,刚好参与开发了一个数据仓库方面的项目,以下的一点东西算是数据库优化方面的学习+实战的一些心得体会了,拿出来大家共享。欢迎批评指正阿! SQL语句: 是对数据库(数据)进行操作的惟一途径; 消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低; 可以有不同的写法;易学,难精通。 SQL优... 阅读全文
posted @ 2010-08-30 18:06 wenbing 阅读(544) 评论(0) 推荐(0) 编辑
摘要: /* 2008-11-20 由于相关资源已经失效,现上传至本博客,请下载 http://files.cnblogs.com/Microshaoft/CMPP3.ISMG.zip .Net/C# 实现 中国移动 CMPP v3.0 ISMG SP 收发短信的 SP 客户端 (第3版)(CMPP SP Client) 增加了 CMPP Client 类 本程序严格按 《中国移动通信企业标准》之《中国... 阅读全文
posted @ 2010-08-30 12:53 wenbing 阅读(1077) 评论(1) 推荐(3) 编辑
摘要: --//清空日志 checkpoint --//查看数据库日志 select * from ::fn_dblog(null,null) select * from ::fn_dblog(null,null) where [current lsn]>='000001ae:00000074:0001' and [current lsn]<= '000001ae:00000085:0005'... 阅读全文
posted @ 2010-08-30 12:33 wenbing 阅读(1694) 评论(0) 推荐(0) 编辑
摘要: C#中使用Monitor类、Lock和Mutex类来同步多线程的执行 在多线程中,为了使数据保持一致性必须要对数据或是访问数据的函数加锁,在数据库中这是很常见的,但是在程序中由于大部分都是单线程的程序,所以没有加锁的必要,但是在多线程中,为了保持数据的同步,一定要加锁,好在Framework中已经为我们提供了三个加锁的机制,分别是Monitor类、Lock关键字和Mutex类。 其中Lock关... 阅读全文
posted @ 2010-08-30 12:25 wenbing 阅读(131) 评论(0) 推荐(0) 编辑
摘要: using System.Diagnostics; Stopwatch tm = new Stopwatch(); tm.Start(); 某个模块... tm.Stop(); MessageBox.Show(tm.Elapsed.Milliseconds.ToString(), "training done"); 阅读全文
posted @ 2010-08-30 12:23 wenbing 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 通常我们读取一个文件使用如下的步骤: 1、声明并使用File的OpenRead实例化一个文件流对象,就像下面这样 2、准备一个存放文件内容的字节数组,fs.Length将得到文件的实际大小,就像下面这样 3、开始读了,调用一个文件流的一个方法读取数据到data数组中 FileStream fs = File.OpenRead(filename); 或者 FileStream f... 阅读全文
posted @ 2010-08-30 12:16 wenbing 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 经常做WinForm开发的人可能会遇到这样一种情况,WinForm程序后台有许多线程在执行任务,前台界面需要适时或定时显示后台任务执行的情况。此类任务界面通常如下: 这里存在一个问题是如何在界面上显示后台线程上的状态数据,也就是多线程如何访问控件。 .NET中的控件并不是线程安全的,因此我们通常是用如下方法在界面上显示后台线程的数据: private void Test(string... 阅读全文
posted @ 2010-08-30 12:15 wenbing 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 配置log4net日志输出到ms sql(开发环境:VS2008,SQL2008,log4net 1.2.10) 今天共介绍两种方式:1、使用独立的config文件;2、使用web.config文件 log4net目前最新版本:1.2.10.0 下载地址:http://logging.apache.org/log4net/download.html 首先创建数据库日志表 USE [Test] ... 阅读全文
posted @ 2010-08-30 12:13 wenbing 阅读(360) 评论(0) 推荐(0) 编辑
摘要: private void getxx(){ RegistryKey start = Registry.LocalMachine; RegistryKey cardServiceName, networkKey; string networkcardKey ="SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards"; str... 阅读全文
posted @ 2010-08-30 12:11 wenbing 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 获取安装软件和路径,通过注册表得到。实例代码: using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall", false)) { if (key != null)//判断对象... 阅读全文
posted @ 2010-08-30 12:10 wenbing 阅读(795) 评论(0) 推荐(0) 编辑
摘要: //一、安装服务: private void InstallService(IDictionary stateSaver, string filepath) { try { System.ServiceProcess.ServiceController service = new System.Serv... 阅读全文
posted @ 2010-08-30 12:08 wenbing 阅读(237) 评论(0) 推荐(0) 编辑
摘要: /// /// 请求访问类 /// public class ServletMgr { /// /// 发送请求到servlet并得到返回结果 /// /// 请求的Servlet /// 返回的错误描述,如果无错误,则返回空字符串 /// 返回servlet处理... 阅读全文
posted @ 2010-08-30 12:06 wenbing 阅读(737) 评论(0) 推荐(0) 编辑
摘要: 1. 字符串数据类型char此数据类型可存储1~8000个定长字符串,字符串长度在创建时指定;如未指定,默认为char(1)。每个字符占用1byte存储空间。nchar此数据类型可存储1~4000个定长Unicode字符串,字符串长度在创建时指定;如未指定,默认为nchar(1)。每个字符占用2bytes存储空间。varchar此数据类型可存储最大值为8000个字符的可变长字符串。可变长字符串的最... 阅读全文
posted @ 2010-08-30 12:04 wenbing 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 前言 在我们应用程序开发过程中,经常会遇到一些问题,需要使用多线程技术来加以解决。本文就是通过几个示例程序给大家讲解一下多线程相关的一些主要问题。 执行长任务操作 许多种类的应用程序都需要长时间操作,比如:执行一个打印任务,请求一个 Web Service 调用等。用户在这种情况下一般会去转移做其他事情来等待任务的完成,同时还希望随时可以监控任务的执行进度。 ?/P> 下面的... 阅读全文
posted @ 2010-08-30 12:03 wenbing 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 很多程序设计都或多或少的涉及设计模式。现在大约有23种设计模式,分类如下: I] Creational Patterns (构建模式) Singleton (单例模式) Factory (工厂模式) Abstract Factory (抽象工厂) Builder (创建模式) Prototype(原型模式) II] Structural Patterns (结构化模式) Adapter (适配... 阅读全文
posted @ 2010-08-30 12:02 wenbing 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 1、 通过反射的GetProperties()方法只能获取一个对象中被标记为Public的属性。 例如:有一个Person类: class Person{ protected string name{get;set;} public int age {get;set;} } 通过Type动态获取person的属性: Type t=typeof(Person);f... 阅读全文
posted @ 2010-08-30 12:00 wenbing 阅读(268) 评论(0) 推荐(0) 编辑
摘要: TransactionScope类是framework2.0 新增的一个类,在System.Transactions命名空间中,使用时必须先添加System.Transactions引用;另外还要在windows控制面版-->管理工具-->服务-->Distributed Transaction Coordinator-->属性-->启动,启动这个服务.示例代码如下: 阅读全文
posted @ 2010-08-30 11:53 wenbing 阅读(886) 评论(0) 推荐(0) 编辑
摘要: 正则表达式(Regular expressions)是一套语法匹配规则,各种语言,如Perl, .Net和Java都有其对应的共享的正则表达式类库。在.Net中,这个类库叫做Regex。 简单的说,Regex是从字符窗中查找匹配字符串的应用类。通过Regex,编程人员能够非常方便的从一段数据中提取自己所需要的数据信息。举一个简单的例子,让大家对Regex有个大概的了解: Regex regex =... 阅读全文
posted @ 2010-08-30 11:46 wenbing 阅读(287) 评论(0) 推荐(0) 编辑
摘要: lock只能使用引用类型,严格来说是需要对象的实例。即使对象在意义上是相同的,但是如果不是ReferenceEquals的话,那么将作为两个实例来对待,那么C# lock 的就不是同一个东西。也就是说,当你以为这个 lock 生效的话,它其实在做无用工。 测试用例: 01 using System; 02 using System.Threading; 03 04 cla... 阅读全文
posted @ 2010-08-30 11:45 wenbing 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 1:创建控件: button1 webBrowser1 textBox1 网址 textBox2 用户名 textBox3 密码 2: using... 1 using System; 2 using System.Windows.Forms; 3 using System.Runtime.InteropServices; 3:完整代码。 ... 阅读全文
posted @ 2010-08-30 11:40 wenbing 阅读(740) 评论(1) 推荐(0) 编辑
摘要: 第一步:新建一个解决方案demoSolution,添加一个Windows控件库项目,我们起名为demoActiveX。为便于阅读,我们更改控件名字为demoControl.cs,然后拖动一个textBox控件到窗体上。 第二步:在demoControl类下新建公共方法Test,用于实现控件与客户端脚本的互操作, public void Test() { ... 阅读全文
posted @ 2010-08-30 11:39 wenbing 阅读(416) 评论(0) 推荐(0) 编辑
摘要: using System.Runtime.InteropServices; 引入键盘事件函数 [DllImport("user32.dll")] public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo); 参数: bVk:定义一个虚拟键码。键码值必须在1~25... 阅读全文
posted @ 2010-08-30 11:35 wenbing 阅读(782) 评论(0) 推荐(0) 编辑
摘要: 本文开始总结.NET下的多种多线程机制,不断更新中,往各位补充。 Invoke机制 最近在实验一个webservice时候,想到了要用异步机制,于是好好研究了一下多线程和Invoke机制,这里写点小小的心得,如有不妥,请各位指教。 我们往往会遇到这样的需求:有一个十分耗时间的工作(比如一个WebSerive的请求),我们不希望它阻塞现有的UI线程(因为这样会导致界面假死),而是希望它在另外... 阅读全文
posted @ 2010-08-30 11:33 wenbing 阅读(220) 评论(1) 推荐(1) 编辑
摘要: 互斥进程(程序), 简单点说,就是在系统中只能有该程序的一个实例运行. 现在很多软件都有这功能,如Maxthon 可以设置为"只允许打开一个窗体",还有Bitcomet等. 我也是看到这些软件的这个功能才来研究这个问题的. 要实现程序的互斥,通常有三中方式,下面用 C# 语言来实现: 实现方式一: 使用线程互斥变量. 通过定义互斥变量来判断是否已运行实例.C#实现如下: 把pro... 阅读全文
posted @ 2010-08-30 11:32 wenbing 阅读(326) 评论(0) 推荐(0) 编辑
摘要: SE String Resource 是一款辅助多国语言软件开发的实用工具,根本目的在于通过生成接口来约束不同语言资源的实现,使开发人员可以基于接口调用资源。 除此之外,提供方便开发人员使用的各种实用功能,如多项目并行编辑,资源导入,Excel 导入、导出等。 生成的代码,还是基于 resx 资源文件的,所以完全兼容 .NET 自有方式资源访问方式,保留 .NET 资源文件的所有优点。 这个工... 阅读全文
posted @ 2010-08-30 11:27 wenbing 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 一、简介 名词介绍:散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 HashTable 表的优点:HashTable是System.Collections命名空间提供的一个容器,HashTable中的key/v... 阅读全文
posted @ 2010-08-30 11:25 wenbing 阅读(525) 评论(0) 推荐(0) 编辑