摘要: 虽然开发过程中没用过行列转换,但是听说面试时常常会遇到这个问题,以前在网上也看到过大神的例子,今天自己仔细的玩了下,希望和大家分享一下了。注意:列转行的方法可能是我独创的了,呵呵,因为在网上找不到哦,全部是我自己写的,用到了系统的SysColumns(一)行转列的方法先说说行转列的方法,这个就比较好想了,利用拼sql和case when解决即可实现目的1:建立测试用的数据库CREATE TABLE RowTest( [Name] [nvarchar](10) NULL,--名稱 [Course] [nvarchar](10) NULL,--課程名稱 [Record] [int... 阅读全文
posted @ 2013-12-11 14:15 海上浪子 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 简介 分区表是在SQL SERVER2005之后的版本引入的特性。这个特性允许把逻辑上的一个表在物理上分为很多部分。而对于SQL SERVER2005之前版本,所谓的分区表仅仅是分布式视图,也就是多个表做union操作. 分区表在逻辑上是一个表,而物理上是多个表.这意味着从用户的角度来看,分区表和普通表是一样的。这个概念可以简单如下图所示: 而对于SQL SERVER2005之前的版本,是没有分区这个概念的,所谓的分区仅仅是分布式视图: 本篇文章所讲述的分区表指的是SQL SERVER2005之后引入的分区表特性.为什么要对表进行分区 在回答标题的问题之前,需要说明的是,表分区这个特性只有.. 阅读全文
posted @ 2013-12-11 10:34 海上浪子 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 在上一节中我们介绍了环境搭建和配置介绍,并快速启动CC查看集成结果,在本节中我们将详细介绍CC构建操作及监视。 1. 启动CC服务器 通过执行其根目录下的cruisecontrol.bat文件来启动CC。控制台显示“BuildQueue - BuildQueue started”,则说明CC服务器已成功启动。在启动服务器之前,我们可以打开cruisecontrol.bat文件并修改倒数第三行相应功能的端口数值来指定服务器占用的系统端口,在本例中我们将默认8080端口。2. Report管理方式 在前一节中介绍CC有两个入口可以管理集成项目,其中CC较早之前提供了Report方式... 阅读全文
posted @ 2013-12-11 10:28 海上浪子 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 1. 环境搭建 1.1. 下载及目录介绍从官方站点http://cruisecontrol.sourceforge.net/download.html下载一份最新的 CC 压缩包,最新的版本号为2.8.4下载了cruisecontrol-bin-2.8.4.zip 直接解压到E盘下,文件结构如下图: apache-ant-1.7.0:CC中使用ANT工具 artifacts:CC编译生成发布包 etc:自带容器Jetty对应的配置文件 lib:自带容器Jetty所需要到的Jar包 logs:各项目生成日志存在文件夹 projects:存放各项目文件目录,进行程序的编译 webapps:CC自带 阅读全文
posted @ 2013-12-11 10:26 海上浪子 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 在前面的文章中, 介绍自己当时所在团队的处境(使用.NET开发),一个不到十个人的研发团队在保证正常开发进度同时需要并发支持四、五十个项目问题处理,经常为了程序版 本冲突、日常测试版本、发布版本提供等重复枯燥无味的手工劳动,导致团队成员身心俱疲。经历这样痛苦的一段时间,终于忍受不了,通过命令行实现了包括获 取、编译、发布过程的集成,大大减轻版本编译的时间,此时还能见到团队成员一边编译程序一边聊天轻松的笑脸,这就坚定了自己持续集成的做法,不过可笑是当 时自己对持续集成没有任何的概念,只是当时的状况逼自己走了集成之路。 这个工具在经历半年使用进行了一次升级,提供了更多的选项功能,参见升级版本介绍。 阅读全文
posted @ 2013-12-11 10:24 海上浪子 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 持续化集成工具CC.NET[引言:团队开发需要 进行集中的项目文件管理与有效的协调,我们采用源代码管理工具协助我们管理,卓有成效。限定重要文件的访问权限、使用悲观锁杜绝成员同时编辑同一份文件、 不允许长时间迁出文件等规则让我们在某一时间段内非常愉快。但是慢慢的,有人抱怨“我获取了源代码怎么编译错误?”。于是增加规定:迁入之前必须获取最 新,然后再一次编译,成功后方可迁入VSS。这种办法是很不错,但是工作繁琐了,尤其对大型项目,更加的苦不堪言。看来我们需要一个机器人帮我们,那就是持续集成。持续集成是一种实践,可以让团队在持续的基础上收到反馈并进行改进,不必等到开发周期后期才寻找和修复缺陷。通俗一 阅读全文
posted @ 2013-12-11 10:22 海上浪子 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 在项目中新建一个class文件,代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace WeifenLuo.WinFormsUI.Docking{ public class DockContentEx : WeifenLuo.WinFormsUI.Docking.DockContent { ... 阅读全文
posted @ 2013-12-11 10:09 海上浪子 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 1、当双击Tab时,原先是直接把当前Tab所表示的这个窗体,从主窗体的框架上分离现来,成为一个浮动的窗体。这不是我想要的,我把它改成了双击关闭。在DockPaneStripBase的WndProc方法里,对于左键双击消息重新作了处理(下面注释掉的一行是原先的写法,它下面那行是改的): [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)] protected override void WndProc(ref Message m) { if (m.Msg == ( 阅读全文
posted @ 2013-12-11 09:48 海上浪子 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 在之前只知道SqlServer支持数据批量插入,殊不知道Oracle、SQLite和MySql也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解决方法。首先说一下,IProvider里有一个用于实现批量插入的插件服务接口IBatcherProvider,此接口在前一篇文章中已经提到过了。/// /// 提供数据批量处理的方法。 /// public interface IBatcherProvider : IProviderService { /// /// 将 的数据批量插入到... 阅读全文
posted @ 2013-12-11 09:22 海上浪子 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 一、C# vs SQLite: C#SQLite字段名类型库类型GetFieldType(#)转换备注F_BOOLboolBIT NOT NULLBoolean F_BOOL_NULLbool?BITBoolean F_SBYTEsbyteINT8 NOT NULLSBytesbyte_ F_SBYTE_NULLsbyte?INT8SBytesbyte_ F_BYTEbyteUINT8 NOT NULLByte F_BYTE_NULLbyte?UINT8Byte F_SHORTshortINT16 NOT NULLInt16 F_SHORT_NULLshort?INT16I... 阅读全文
posted @ 2013-12-11 08:56 海上浪子 阅读(900) 评论(3) 推荐(0) 编辑