随笔分类 -  [11] 收藏知识

摘要:1、格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元)string.Format("{0:C}",0.2) 结果为:¥0.20 (英文操作系统结果:$0.20)默认格式化小数点后面保留两位小数,如果需要保留一位或者更多,可以指定位数string.Format("{0:C1}... 阅读全文
posted @ 2014-07-07 18:24 小麻雀 阅读(1038) 评论(0) 推荐(0) 编辑
摘要:关于C#的Main(String[] args)参数输入问题指定相关的测试代码 首先,写一个用于测试的关于Main(String[] args)参数输入有关的代码类,如下:using System;public class Hello{ public static void Main(String[... 阅读全文
posted @ 2014-05-05 21:20 小麻雀 阅读(9074) 评论(0) 推荐(2) 编辑
摘要:where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句。一、不用where1=1在多条件查询中的困扰 举个例子,如果您做查询页面,并且,可查询的选项有多个,同时,还让用户自行选择并输入查询关键词,那么,按平时的查询语句的动态构造,代码大体如下: string MySqlStr=”select * from table where”; if(Age.Text.Lenght>0) { MySqlStr=MySqlStr+“Age=“+“'Age.Text'“; } if(Address.Text.Lenght>0) { MyS 阅读全文
posted @ 2013-09-09 09:54 小麻雀 阅读(288) 评论(0) 推荐(0) 编辑
摘要:我在博客堂上也看到不少有关并发控制的文章,我一直是推荐使用时间戳来解决的。比如我们在SQL Server中的表中定义一个字段为timestamp类型的字段ts,这个字段的值不需要我们进行控制的。在Insert与Update时,数据库会自己进行ts值的更新,因此我们只要在Update时使用:Update xxx wherekey=@keyandts=@ts就可以了,根本不用考虑ts里的值更新。Delete时也最好进行一下判断,用这种方式是可以控制数据并发操作的。只需要在Update与Delete时,判断"影响条数"就可以知道更新是否成功。这一点我想非常方便,但不是所有的数据库 阅读全文
posted @ 2013-03-05 09:38 小麻雀 阅读(675) 评论(0) 推荐(0) 编辑
摘要:在C#中,如何将一个int转换成一个byte array,又如何将一个byte array转换成一个int 至少可以通过三种方法来进行转换。在.NET Framework类库的System名字空间中有个叫做BitConverter的类,它是专门用来进行这种转换的。它有一个GetBytes方法,对于大多数简单的类型来说,该方法都被重载了,它可以返回一个byte array来保存你传递的值。它也有几个ToTypeName方法用来将一个byte array转换成一个基本类型(primitive type):byte[] b = BitConverter.GetBytes( 0xba5eba11 ). 阅读全文
posted @ 2013-01-14 11:07 小麻雀 阅读(21394) 评论(0) 推荐(0) 编辑
摘要:ModelClientValidationRule同时存在多个位置解决方案错误 2280 类型“System.Web.Mvc.ModelClientValidationRule”同时存在于“C:\Program Files\Microsoft ASP.NET\ASP.NET Web Pages\v2.0\Assemblies\System.Web.WebPages.dll”和“C:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll”中 D:\workspace\ecard26b\v 2.60\ 阅读全文
posted @ 2013-01-08 13:32 小麻雀 阅读(277) 评论(0) 推荐(0) 编辑
摘要:MSDTC(分布式交易协调器),协调跨多个数据库、消息队列、文件系统等资源管理器的事务。该服务的进程名为Msdtc.exe,该进程调用系统Microsoft Personal Web Server和Microsoft SQL Server。该服务用于管理多个服务器 . 位置:控制面板--管理工具--服务--Distributed Transaction Coordinator 依存关系:Remote Procedure Call(RPC)和Security Accounts Manager 建议:一般家用计算机涉及不到,除非你启用Message Queuing服务,可以停止。解决办法: 1.. 阅读全文
posted @ 2012-12-17 16:19 小麻雀 阅读(1166) 评论(0) 推荐(0) 编辑
摘要:Socket 编程时,单机最多可以建立多少个 TCP 连接,受到操作系统的影响。Windows 下单机的TCP连接数受多个参数影响:最大TCP连接数[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters] TcpNumConnections = 0x00fffffe (Default = 16,777,214)以上注册表信息配置单机的最大允许的TCP连接数,默认为 16M。这个数值看似很大,这个并不是限制最大连接数的唯一条件,还有其他条件会限制到TCP 连接的最大连接数。最大动态端口数TCP客户端和 阅读全文
posted @ 2012-12-14 10:58 小麻雀 阅读(39480) 评论(0) 推荐(3) 编辑
摘要:.NET Socket开发之异步Socket 在基于.NET的网络服务端的开发中,我们用到和听到的最多的恐怕就是异步Socket了。异步Socket的性能比同步高出很多,但是编写代码比较复杂。因此异步Socket也是网络上讨论比较多的话题。 今天,我们就来讨论一下如何用异步Socket开发网络应用。在此之前我们先讨论两个问题。 一、异步Socket是如何工作的: 那异步Socket是如何工作的呢?我以接收一条消息来说明这个问题。首先,程序向系统投递一个接收数据的请求,并为其指定一个数据缓冲区和回调函数,回调函数用来指示当数据到达后将如何处理,然后我们的程序继续执行下去,当有数据到达的时... 阅读全文
posted @ 2012-12-14 10:57 小麻雀 阅读(774) 评论(0) 推荐(0) 编辑
摘要:.NET Framework 2.0SP1及以后版本提供了一组用于网络通信的增强功能类库,SocketAsyncEventArgs 就是其中最重要的一个,下面是MSDN对这组增强功能的类库的介绍。 System.Net.Sockets.Socket 类有一组增强功能,提供可供专用的高性能套接字应用程序使用的可选异步模式,SocketAsyncEventArgs 类就是这一组增强功能的一部分。该类专为需要高性能的网络服务器应用程序而设计。应用程序可以完全使用增强的异步模式,也可以仅仅在目标热点区域(例如,在接收大量数据时)使用此模式。 这些增强功能的主要特点是可以避免在异步套接字 I/O 量非. 阅读全文
posted @ 2012-10-30 15:23 小麻雀 阅读(3833) 评论(1) 推荐(1) 编辑
摘要:关于内存泄漏的问题,之前也为大家介绍过,比如:《C++中内存泄漏的检测方法介绍》,是关于C++内存泄漏的。今天为大家介绍的是关于.NET内存泄漏的问题。 前段时间帮项目组内做了一次内存优化,产品是使用c#开发的winForm程序,一直以为.net提供了垃圾收集机制,开发的时候也没怎么注意内存的释放,导致最后的产品做出来之后,运行一个多小时就内存直接崩溃了,看来.net的垃圾收集还是得需要开发者加以控制,也不是万能的啊。 下面将对垃圾收集做以简介,然后描述一下我在内存优化过程中常见的内存泄露及解决方法。 托管堆的内存分配(下文中的托管堆指的是GC堆) 托管堆是以应用程序域为依托的,即每一... 阅读全文
posted @ 2012-10-30 13:38 小麻雀 阅读(500) 评论(0) 推荐(0) 编辑
摘要:一.在Oracle中可使用Start with...Connect By子句Start with...Connect By子句递归查询一般用于一个表维护树形结构的应用。创建示例表:CREATE TABLE TBL_TEST ( ID NUMBER, NAME VARCHAR2(100 BYTE), PID NUMBER DEFAULT 0 );插入测试数据:INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0'); INSERT INTO TBL... 阅读全文
posted @ 2012-09-21 16:14 小麻雀 阅读(16141) 评论(0) 推荐(1) 编辑
摘要:Oracle 9i创建数据库时默认包含了XDB特性。一旦启动了数据库和Listener,Oracle XDB包含HTTP和FTP服务,分别监听TCP 8080和2100端口,刚好和JBoss、Tomcat等默认8080端口冲突,网上找到的办法多是修改端口号,今日好不容易找到一个关闭XDB HTTP/FTP服务的方法,特地记录在blog上。1、首先:找到Oracle安装目录下admin\ccdb\pfile\init.ora.*文件,例如:E:\oracle\admin\ccdb\pfile\init.ora.3302008184462、找到该文件后,注释掉下面一行并保存。如下:#dispatc 阅读全文
posted @ 2012-09-21 16:10 小麻雀 阅读(1629) 评论(0) 推荐(0) 编辑
摘要:数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。 范式说明 第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。 这点相信没有人会违反的。现在的DBMS已经限定死了。 第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关... 阅读全文
posted @ 2012-09-21 16:08 小麻雀 阅读(184) 评论(0) 推荐(0) 编辑
摘要:经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口?1、Windows平台在windows命令行窗口下执行:E:\oracle\ora92\bin>netstat -ano |find ":80" TCP 172.18.2.56:3311 172.18.40.3:80 ESTABLISHED 3704 TCP 172.18.2.56:3319 172.18.65.7:80 ESTABLISHED 3704 TCP 172.18.2.56:4641 ... 阅读全文
posted @ 2012-09-21 16:07 小麻雀 阅读(871) 评论(0) 推荐(1) 编辑
摘要:1.问题:在Socket通信中,我们经常要多客户端共用一个端口,但这往往会报错,因为正常来说一个端口只能绑定一次,但释放的时候比较麻烦,所以还是要是实现端口共用的话,就不用执行一个关一个再开一个。 2.实现端口复用: 正常绑定://定义网络地址,连接类型与网络协议并绑定本地IP与端口 socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); ipPoint = new IPEndPoint(IPAddress.Parse(ipAdrr)... 阅读全文
posted @ 2012-09-11 17:16 小麻雀 阅读(3878) 评论(1) 推荐(1) 编辑
摘要:最近学习UDP编程,头都搞大了,找了不少资料,也请教了不少同行,自认为下面这篇资料写的很好,所以收藏之,以供参考. 1.在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,我这里仅对 像ICQ一类的发送聊天消息的情况作分析,对于其他情况,你或许也能得到一点帮助: 首先,我们知道,TCP/IP通常被认为是一个四层协议系统,包括链路层,网络层,运输层,应用层. UDP属于运输层,下面我们由下至上一步一步来看: 以太网(Ethernet)数据帧的长度必须在46-1500字节之间,这是... 阅读全文
posted @ 2012-08-11 14:11 小麻雀 阅读(546) 评论(0) 推荐(0) 编辑
摘要:C#中有两种类型变量,一种是值类型变量,一种是引用类型变量。【浅拷贝就是表面上拷贝了地址;深拷贝就是拷贝了内容 】 对于值类型变量,copy是属于全盘复制; 而对于引用类型变量,一般的copy只是浅copy,相当于只传递一个引用指针一样。 因此对于引用类型变量进行真正copy的时候,也是最费事的。 浅拷贝 只是复制本身,它包含的对象只是复制引用,其中包含的对象就直接拿来用了,这样产生的问题就是:如果一个被修改了,另一个也跟着变。是这样的,但是除了string类型外,string类型,本来属于引用类型,因此在进行复制的时候,采用的是浅拷贝,但当发生变化的时候,系统会自动生成进行深copy。 对象 阅读全文
posted @ 2012-08-06 16:46 小麻雀 阅读(5813) 评论(0) 推荐(0) 编辑
摘要:首先要明白线程的工作原理,jvm有一个main memory,而每个线程有自己的working memory,一个线程对一个variable进行操作时,都要在自己的working memory里面建立一个copy,操作完之后再写入main memory。多个线程同时操作同一个variable,就可能会出现不可预知的结果。根据上面的解释,很容易想出相应的scenario。 而用synchronized的关键是建立一个monitor,这个monitor可以是要修改的variable也可以其他你认为合适的object比如method,然后通过给这个monitor加锁来实现线程安全,每个线程在获得这个 阅读全文
posted @ 2012-06-26 13:35 小麻雀 阅读(132088) 评论(5) 推荐(18) 编辑
摘要:一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的 全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另 一块区域。 - 程序结束后由系统释放。 4、文字... 阅读全文
posted @ 2012-06-26 12:03 小麻雀 阅读(2026) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示