代码改变世界

你碰到过StreamReader.Peek的异常情况

2010-12-25 11:52 by 潇湘隐者, 2463 阅读, 3 推荐, 收藏, 编辑
摘要:工作中有个需求需要采集每个服每天用户的登录信息、道具使用情况等(用来做数据分析),这些信息、数据是通过技术那边的Http接口来获取,为了提高效率,节省流量,没有用XML或JSON格式的输出(数据量比较大,用XML格式或JSON格式或增加许多冗余的信息,优劣暂且不讨论),而是用简单的文本形式,Http接口数据的输出的格式如下:1:不同记录以"\r\n"分隔2:不同字段以“|||”分隔举个例子(假设),用户每天的登录信息:字段排列顺序为:GameID|||UserID|||UserName|||ServerID|||ServerName|||IP|||RegistedFrom|||FromSite 阅读全文

T-SQL 编码标准【转帖】

2010-11-21 23:23 by 潇湘隐者, 769 阅读, 0 推荐, 收藏, 编辑
摘要:本文转自:http://www.microsoft.com/china/msdn/library/data/sqlserver/sp04l9.mspx?mfr=true可能让人觉得很奇怪,但好像的确没有什么“正式的”T-SQL 编码标准。早在 1999 年末的时候,我惊喜地发现 John Hindmarsh 提出的 SQL Server 7.0 标准,我在 2000 年 2 月的社论中对他的某些建议进行了总结。(2000 年 2 月以及本月的“下载”中都包括了 John 原来的标准。)后来,Ron Talmage 撰写了一系列专栏文章,提出了他对各种“最佳方法”的建议,当然,SQL Serve 阅读全文

重构的一点体会

2010-10-27 23:01 by 潇湘隐者, 845 阅读, 0 推荐, 收藏, 编辑
摘要:这几天在重构系统,用四个字形容我的心情就是“吐血而亡”,其实只是因为权限控制的细化,导致大量地方需要修改(原先比较混乱),索性重构这部分功能,如果整个系统重构,估计会让我疯狂的。还不如推倒重写舒服。可见重构动作不宜过大,应该小步小步、日积月累的不断重构。现在回过头来体会《重构—改善既有代码设计》这本书的知识点,觉得作者的一系列观点真是切入要害。 系统开发、维护本... 阅读全文

SQL SERVER 的模糊查询 LIKE

2010-10-14 17:00 by 潇湘隐者, 6050 阅读, 3 推荐, 收藏, 编辑
摘要:今天写个动态脚本,需要把数据库里面包含“USER_"的表删除掉,突然想不起来如何搜索通配字符了,赶紧查查MSDN,整理了下模糊查询的知识点,留着以后查阅用。LIKE模糊查询的通配符 通配符 说明 示例 % 包含零个或多个字符的任意字符串。 WHERE title LIKE '%computer%'将查找在书名中任意位置包含单词"computer"的所有书名。 _(下划线) 任何单个字... 阅读全文

慎用SELECT INTO复制表

2010-10-12 12:18 by 潇湘隐者, 7824 阅读, 1 推荐, 收藏, 编辑
摘要:很多时候我们习惯于用SELECT INTO复制一个表或表结构,因为它方便,快捷,而且在某些情况下效率比INSERT INTO 效率要高一些。但是要注意: SELECT INTO 复制表或表结构的时候,只是得到了一个“外壳”,就像克隆人一样,只是得到了一个躯体,个人的意识、回忆都不会克隆的。像原表的主键、外键、约束、触发器、索引都不会被复制过来。这点要注意哦,在某些情况下,没... 阅读全文

SQL Server 2008 打SP1 补丁遇到的问题

2010-09-21 17:05 by 潇湘隐者, 5447 阅读, 0 推荐, 收藏, 编辑
摘要:今天在我机器上给SQL Server 2008 打上SP1补丁时,错误不断,郁闷死了。我的机器是XP Server Pack 3, SQL Server 2008 版本:SQL Server 2008 版本Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--... 阅读全文

SQL Server 2008 筛选器报错Microsoft.SqlServer.Management.Sdk.Sfc

2010-09-21 14:53 by 潇湘隐者, 2582 阅读, 0 推荐, 收藏, 编辑
摘要:在Microsoft SQL Server 数据库中有时候经常需要筛选表,因为数据中表比较多时,不仅从一堆表里面找一个表比较麻烦,而且客户端从服务器加载这些信息需要一些时间。前两天安装了SQL Server 2008,结果在筛选表时,报如下错误:点击确定后,然后“表(已筛选)”,弹出如下错误提示。这个是因为没有打上SQL Server 2008 Service Pack 1... 阅读全文

SQL Server数据库专用管理员DAC连接方式

2010-09-18 11:38 by 潇湘隐者, 3638 阅读, 0 推荐, 收藏, 编辑
摘要:SQL Server 提供了专用管理员链接(DAC)。DAC允许管理员访问运行的服务器以执行诊断函数或Transact—SQL语句,或对服务器上的问题进行故障排除,即使服务器以锁定或在非正常状态下运行。DAC默认情况下只有服务器上可以使用DAC,但是你可以通过 SQLServer 2005 外围应用配置器设置允许远程计算机上的客户端应用程序使用 DAC,如下图所示你也可以通过下面的SP... 阅读全文

查看数据库、表、索引的物理存储情况

2010-09-13 08:18 by 潇湘隐者, 2449 阅读, 1 推荐, 收藏, 编辑
摘要:在管理、维护数据库时,经常需要查看数据库文件、日志文件所占用的磁盘空间,以及磁盘还剩下的磁盘空间,你可以通过下面几种方面查看数据库文件详细情况:1: 是通过远程连接(或VPN)连接到数据库服务器,直接去查看。2: 你连接到数据库后,可以通过mssms管理器,选择要查看的数据库,单击右键选择属性。然后选择文件选项,如下图所示。3: 通过SQL命令、脚本查看。3.1: sys.database_files 视图中保存着数据库文件(数据文件、日志文件)等的详细信息SELECT*FROMsys.database_files--通过下面命令,查看系统各磁盘可使用空间。EXECmaster..xp_fix 阅读全文

Microsoft OLE DB Provider for ODBC 组件

2010-09-09 14:51 by 潇湘隐者, 2657 阅读, 0 推荐, 收藏, 编辑
摘要:Microsoft OLE DB Provider for ODBC (MSDASQL) 一项允许在 OLEDB 和 ADO(它在内部使用 OLEDB)上构建的应用程序通过 ODBC 驱动程序访问数据源的技术。 MSDASQL 是用于连接到 ODBC(而不是数据库)的 OLEDB 访问接口。 MSDASQL 随 Windows 操作系统提供,Windows Server 2008 和 Window... 阅读全文

数据库表的基本信息,你知道吗?

2010-09-03 12:15 by 潇湘隐者, 5330 阅读, 16 推荐, 收藏, 编辑
摘要:用SQL Doc生成数据库字典文档的时候,突然发现有字段描叙(Description)这项内容,以前一直没有注意过,故特意研究了一下,结果越挖越深,就写了这篇文章。以前在做数据库脚本开发时,新建表时,对各个字段的描叙要么是记录在文档里面,要么自己建一个表,来保存这些内容,以便日后开发、维护的方便。其实这些信息完全可以放在数据库自己的系统视图里面。对字段的说明、描述一般都放在系统视图sys.exte... 阅读全文

SQL模板资源管理器,你用了吗?

2010-08-21 21:30 by 潇湘隐者, 1799 阅读, 1 推荐, 收藏, 编辑
摘要:SQL Server Management Studio 有个模板资源管理器,不知你用过没有?使用模板创建脚本、自定义模板等功能能大大提高你的工作效率,如果没有尝试过,赶紧去试试吧。很多时候,我们习惯了手写脚本,而不愿意花费精力去研究陌生的工具。你可以在通过下面方式打开模板资源管理器 视图->模板资源管理器; 也可以通过快捷键CTRL + ALT + T打开它。如图所示,你可以看见里面已经包... 阅读全文

清除Chrome浏览器的历史记录、缓存

2010-08-19 23:04 by 潇湘隐者, 5380 阅读, 1 推荐, 收藏, 编辑
摘要:习惯了用360卫士清理浏览器缓存、历史记录等垃圾文件,但是今天用360清理过后,打开谷歌浏览器Chrome时, 发现它的历史记录(CTRL+ H)根本没有被清理掉,经过一番探索后,可以通过下面方法清除历史记录:首先找到谷歌Chrome浏览器安装文件的目录,我的C:\Documents andSettings\Administrator\Local Settings\Application Data... 阅读全文

如何书写优雅、漂亮的SQL脚本?

2010-08-16 08:40 by 潇湘隐者, 35150 阅读, 18 推荐, 收藏, 编辑
摘要:本篇来聊聊如何书写漂亮、整洁、优雅的SQL脚本,下面这些是我个人总结、整理出来的。姑且做个抛砖引玉吧,呵呵,欢迎大家一起来讨论。我们首先来看看一段创建数据表的脚本(如下所示),你是否觉得有什么不妥或是不足呢?如果是你,你怎样书写呢?代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHig... 阅读全文

SQL Server——存储过程

2010-08-14 01:10 by 潇湘隐者, 7027 阅读, 4 推荐, 收藏, 编辑
摘要:我想从下面几个方面大概的讲述下存储过程,可能有些知识点是你没有注意的,也可能有些知识点我不知道,欢迎大家指点指点。如有不足,欢迎指教!存储过程概念存储过程优点存储过程的接口存储过程的解析、编译过程存储过程安全性查看存储过程加密、解密存储过程存储过程概念存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(带参... 阅读全文

String.Format 格式化货币的小问题

2010-08-11 22:45 by 潇湘隐者, 1218 阅读, 1 推荐, 收藏, 编辑
摘要:今天在开发过程中,遇到一件让我觉得比较纳闷的事情:用String.Format 格式化充值金额的时候,我这样处理:String.Format("{0:C2}", dr["InpourMoney"].ToString())后,并没有像预期在充值金额前面加上货币符号¥, 反而String.Format("{0:C2}", dr["InpourMoney"]) 这样处理后,在页面充值金额上面添加了¥符号... 阅读全文

SQL Server ——动态SQL

2010-08-05 00:06 by 潇湘隐者, 22325 阅读, 11 推荐, 收藏, 编辑
摘要:动态SQL:code that is executed dynamically。它一般是根据用户输入或外部条件动态组合的SQL语句块。动态SQL能灵活的发挥SQL强大的功能、方便的解决一些其它方法难以解决的问题。相信使用过动态SQL的人都能体会到它带来的便利,然而动态SQL有时候在执行性能(效率)上面不如静态SQL,而且使用不恰当,往往会在安全方面存在隐患(SQL 注入式攻击)。动态SQL可以通过... 阅读全文

重温SQL——行转列,列转行

2010-07-28 08:40 by 潇湘隐者, 212776 阅读, 69 推荐, 收藏, 编辑
摘要:行转列,列转行是我们在开发过程中经常碰到的问题。行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现。用传统的方法,比较好理解。层次清晰,而且比较习惯。 但是PIVOT 、UNPIVOT提供的语法比一系列复杂的SELECT...CASE 语句中所指定的语法更简单、更具可读性。下面我们通过几个简单的例子来介绍一下列转行、行转列问题。 我们首先先通过一个老生常谈的例子,学生成绩表(下面简化了些)来形象了解下行转列CREATE TABLE [StudentScores]( [UserName] NVARCHAR(... 阅读全文

DATEDIFF函数小问题

2010-07-27 08:20 by 潇湘隐者, 1706 阅读, 0 推荐, 收藏, 编辑
摘要:DATEDIFF函数语法如下DATEDIFF( datepart , startdate , enddate ),返回指定的 startdate 和 enddate 之间所跨的指定 datepart 边界的计数(带符号的整数)。下面来说说我碰到的这个问题。用户表里user里面有个字段Create_Time记录用户注册日期,Last_Login_Time 记录用户最后登录的时间,要统计注册用户在注册... 阅读全文

动态SQL应用小列子

2010-07-21 11:40 by 潇湘隐者, 1032 阅读, 0 推荐, 收藏, 编辑
摘要:呵呵,几乎成标题党了,今天要写个脚本查询7天内所有有登录玩家的数据,要求按注册日期统计,虽然是个简单的问题,但是关键是用户表有30个,分别是user0, user1......到user29 ,光是把它们UNION ALL起来,我都够郁闷了,你想象下脚本有多长吧,一大堆堆在那儿,光是复制都让你难以忍受。[代码]呵呵,下面是我用动态SQL 改写的,呵呵,简洁多了[代码]这里得提提CHAR(10)这个... 阅读全文

SQL性能调优实践——SELECT COUNT

2010-07-16 10:34 by 潇湘隐者, 29648 阅读, 3 推荐, 收藏, 编辑
摘要:最近想深入学习SQL,在网上搜索到一些SQL 优化的资料要么是张冠李戴,Oracle 优化的资料硬是弄成啦MS SQL 优化的资料,而且被很多人转载,收藏,有些要么有些含糊不清,好像是那么回事,也没经过验证,实践出真知!下面是我对SELECT COUNT(*), SELECT COUNT(1),SELECT COUNT (0), SELECT COUNT(Field)等孰优孰劣的测试结果,如果测试... 阅读全文

MS SQL开发命名规则

2010-07-13 17:25 by 潇湘隐者, 2303 阅读, 0 推荐, 收藏, 编辑
摘要:下面的SQL开发命名规则是我自己开发时总结、整理出来的,以后的开发过程中将不断完善、修改。也希望各位网友指点、批判。 纲领: SQL 语句关键字全部大写, 命名规则建议使用Pascal Case 或 每个单词使用下划线_隔开,不建议全部使用小写。尽量少使用特殊字符比如数字、空格等 使用英文或英文缩写,不建议使用拼音。尽量见名知意。 1: 数据库名命... 阅读全文

(转)XML CDATA是什么?

2010-05-19 11:04 by 潇湘隐者, 8016 阅读, 1 推荐, 收藏, 编辑
摘要:转自http://www.cnblogs.com/qiantuwuliang/archive/2010/03/29/1699361.html解析数据XML 解析器通常情况下会处理XML文档中的所有文本。当XML元素被解析的时候,XML元素内部的文本也会被解析:ThistextisalsoparsedXML解析器这样做的原因是XML元素内部可能还包含了别的元素,象下面的例子,name元素内部包含了first和last两个元素:BillGates解析器会认为上面的代码是这样的:BillGates转义字符不合法的XML字符必须被替换为相应的实体。如果在XML文档中使用类似"ifsalary 阅读全文

(转)ASP.NET调用javascript脚本的方法总结

2010-05-18 10:43 by 潇湘隐者, 1071 阅读, 0 推荐, 收藏, 编辑
摘要:http://www.cnblogs.com/zmcblogs/archive/2009/12/24/1631335.html1、直接在前台调用 javascript 函数很简单,在 head 元素之间加入 script 元素,将 type 元素设置为 " text/javascript "如: using javascript之后在body 元素间,通过事件来访问 如 要通过button1 的单击事件(onclientclick)来访问 javascript 函数示例如下:这时运行项目,单击 button时,会显示"您的名称为XXX"这就是一个简单的j 阅读全文

《重构—改善既有代码设计》——第二章重构原则——学习笔记

2010-04-20 23:51 by 潇湘隐者, 1018 阅读, 0 推荐, 收藏, 编辑
摘要:1:什么是重构?重构是一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改进程序内部结构。本质上说,重构就是【在代码写好之后改进它的设计】2:为什么要对项目进行重构呢?重构对软件开发有什么好处,为什么要重构呢,打个贴切的比方:我平时比较懒散,屋子里面的东西都是随手乱放,时间长了,屋子里面就乱七八糟了。有时候到了自己也忍无可忍的时候,我就要大动干戈了,把该放哪儿的东西都整理到哪儿,该扔掉的东... 阅读全文

养成随时注释的好习惯

2010-04-16 00:33 by 潇湘隐者, 651 阅读, 0 推荐, 收藏, 编辑
摘要:打从学习编程开始,就知道注释的重要性。逻辑比较复杂的代码;修改代码逻辑;或是加上新的功能等等,最好加上注释。在程序开发、代码维护时我也一直贯彻着这样的思想。可是有时候你还是会忽略它,有时候是因为赶进度,不想花费额外的时间注释;有时候是因为对逻辑理解比较透彻,觉得没有必要注释.....须不知对别人来说,这段代码的逻辑可能不甚了解,也许对你自己而言,几个月或是半年过后,你还能自信满满的说“我对这些逻辑一清二楚”吗? 今天我就遇到了这样一件事件。让我深刻的认识到了忽略注释的代价。今天早上老大叫我过去,过去才知道自己几个月前时候修改了一段代码,现在发现它带入了一些错误,老大也不了解我为什么这样修改,只 阅读全文

XP系统无法运行SQL Server 2005企业版

2010-04-12 21:59 by 潇湘隐者, 2656 阅读, 0 推荐, 收藏, 编辑
摘要:一直都是在Windows 2003上面做开发的,直到最近换了XP系统,装了个SQL Server 2005 企业版本,装的时候就觉得比较怪异,发现有些组件都安装不了,印象中在Windows 2003上面安装没有这个现象,安装完后,打开SQL Server Management器,发现打开服务器名称也找不到对应的实例 于是我打开SQL Server 2005外围应用配置器,点击“服务和连接的外围应用配置器”出现如下图错误。刚开始我以为是SQL Server 2005有些组件安装不成功或是配置引起的错误,于是在网上查找这个错误的原因,结果发现有位网友在这篇帖子里有提及和我比较类似的情况, htt. 阅读全文

WinForm系列——控件的输入限制

2010-03-29 17:59 by 潇湘隐者, 2425 阅读, 0 推荐, 收藏, 编辑
摘要:在.NET WinForm开发中,我们时常需要控制一些控件的输入。比如某个TextBox用来输入产品的数量,只能输入数字;某个ComboBox表示支付方式:现金(M)、信用卡(C)、支票(P)等。用鼠标选择支付方式当然没有问题。但是有时候用户可能是手动输入,那么我们不希望用户手动输入时,输入非法的字母。所以必须控制用户只输入这三个字母,而且必须是大写的。那么下面就Textbox和ComboBox这... 阅读全文

static类为什么不能用sealed关键字修饰

2010-03-25 14:34 by 潇湘隐者, 1867 阅读, 0 推荐, 收藏, 编辑
摘要:今天在写代码时,顺手把一个static 类前面加上sealed关键字,结果编译时报错:” 类不能既是静态的又是密封的“。很是纳闷,sealed字段修饰类不是代表该类不能被继承吗,于是我去掉sealed关键字,生成一个dll。然后用Reflector查看了这个这个类的IL,结果发现如下情况:public static class Utility 被翻译成下面的代码了.class public abstract auto ansi sealed beforefieldinit Utility extends [mscorlib]System.Object我想应该是static编译成IL时翻译成了. 阅读全文

C++虚函数解析(转)

2010-03-09 09:49 by 潇湘隐者, 589 阅读, 0 推荐, 收藏, 编辑
摘要:本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hairetz/archive/2009/04/29/4137000.aspxC++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说... 阅读全文