Archive

Author Archive

平淡的一天

June 11th, 2009 Tony hu No comments

昨天晚上洗衣服的,搞到12点半才睡觉。自然地,今天我没有能起得来,到了7:40的时候,我还在床上,立即给Shen Rain打电话说我坐不了车了,不然的话许师傅会责怪的。
不坐公司的厂车,坐公交28路自然是一件很痛苦的事。车上人好多,不禁让我想起来成都公交燃烧事件,所以半开玩笑地和司机说,不能超载啊。司机…
快要到公司的时候,还打的,花了11元,园区真大。我在古城区桂花新村打的到观前才10元啊。
Then开始一天的工作。
下班后去了图书馆,先看了一会儿SQL Server,觉得没劲,又看了一个多小时的Oracle,将Oracle Instance温习了一下,就是看了一下SGA的各个部分和Background Processes。SGA(System Global Area) 由Share Pool, Database buffer cache, Large pool, Data Dictionary, redo log buffer. 后台程序有LGWR, DBWRn, CKPT, SMON, PMON…
Oracle 的东西觉得好多啊,而且概念很多。
其实Sql Server也比较复杂的,他的备份和还原也并不是我们想的那样简单(我们考虑的东西少,对自己的要求低,当然觉得简单),所以SQL Server还需要好好学学啊。沈老大说只要搞好、精通Sql Server就可以了,我当然明白他的意思。不过我更觉得如果了解更多一点其它的数据库知识,应该不是坏事吧。
Mysql也许会越来越流行,在网络公司中比较流行。我现在感觉一些生产型的企业在IT的投资上是比较舍得的,难怪做网站也最好能拿能企业的单子,本来500元工作量的网站做给企业那就是5K,10倍。3米的网线应该不到10元钱吧?我们好像买是25元一根。Mysql是免费的,功能相对比较少,一般企业不会用的,生产数据库一般以Oracle和SQL Server的后台支撑。一般金融系统是以DB2好像,反正中国电信用的肯定是Oracle,至少江苏电信用的应该是Oracle 9i, 我上次帮一个电信的朋友写查询算法的。

看到了吧,这就是我能写出的日志,东拉西扯,好像没有主次,思维比较乱,不成熟,所以,我需要加强这方面的练习。

——End——

Categories: Mylife Tags: , , ,

一个很长的SQL,花了我一天的时间

June 11th, 2009 Tony hu No comments

从昨天下午三点开始做这一个查询,到今天下午两点钟,终于搞定了。

BEGIN
Set @tsql=’Select C.CheckerID,C.CheckerName,isnull(D.date1,D.date2) date1,D.CSum1,D.QTY1,D.CSum2,D.QTY2
from (Select CheckerID, CheckerName from CheckerList where CheckerType=1) C
full join
(Select A.CSum1,A.QTY1,B.CSum2,B.QTY2,A.date1,B.date2,A.Checker Checker1,B.Checker Checker2 From
(Select count(CarQTY) as CSum1,sum(cast(CarQTY as bigint))  as QTY1,
CONVERT(varchar(100), FormDate, 23) date1,Checker
from FeedBack
where FormDate between ”’+@StartDate+”’ and ”’+@EndDate+”’
and (FeedBackType=1 or FeedBackType=2)
group by  CONVERT(varchar(100), FormDate, 23),Checker) A
full join
(Select count(CarQTY) as CSum2,sum(cast(CarQTY as bigint))  as QTY2,
CONVERT(varchar(100), FormDate, 23) date2,Checker
from FeedBack
where FormDate between ”’+@StartDate+”’ and ”’+@EndDate+”’
and (FeedBackType=3 or FeedBackType=4)
group by  CONVERT(varchar(100), FormDate, 23),Checker) B
On ( A.Checker=B.Checker and A.date1=B.date2)
) D
On (C.CheckerName=D.Checker1 or C.CheckerName=D.Checker2)
order by C.CheckerID’
END

下面附上两个图:(查询分析图,程序最终UI图)

sql_server_ffsa

capsugel_ffsa_ui

这个里面用了两个比较重要的full join, 以前一直觉得full join 用的情况不多,这一次总算帮我我的忙了。
情况是这样的,t1 表中有数据,t2表中也有数据,两个表中的某些字段相同时需要将两个表中的值合并,不相同时也需要列出来,但是需要将数据以每一个操作工,每天的情况列出来,如果操作工没有数据,也需在将操作工的名字列出来。
OK, 人才。

Categories: Database, Sql Server Tags: , ,

详解VisualStudio使用技巧二

June 11th, 2009 Tony hu 1 comment

怎样使用书签?
怎样使用即时窗口来显示变量或执行方法?
怎样在硬盘中快速找到项目中的文件?
怎样快速调整文档或某段代码的格式?
怎样快速把文件加入到项目中?
怎样强制调用智能提示?
怎样强制调用参数信息?
怎样跳转到指定的行?

怎样使用向前定位及向后定位快捷键?
怎样快速切换不用的页面?
怎样快速隐藏或显示当前代码段?
怎样同时修改多个控件的属性?
怎样录制与播放临时宏?

 

9.怎样使用书签来快速找到自己的文件?

     如果你在开发一个中、大型项目,如果你的解决方案下面包含很多工程,如果你拥有很多的页面,那么要想快速找到想要的某个页面是不是很麻烦,层层目录去找?太慢了,何况要还要让你去找某个页面中的某段代码呢?!

     VS中的书签功能能够很好地解决这一问题。首先把光标放到需要标记书签的代码处,然后点击VS中的插入书签按钮,就完成了设置书签的操作。也可以使用设置书签的快捷键:Ctrl+B,Ctrl+T来完成书签的设置或取消。

见图:

书签设置好之后,直接在书签列表中双击你设置的书签就能直接跳转到想要的代码段了。提醒一下,你可以自己重命名书签的名字呀,很方便吧。

10.怎样使用即时窗口来调试程序?

     这个即时窗口的用途就不用说了,大家可能都知道,但是好多人却因为不小心关掉了这个窗口而再想使用它时却怎么找也找不到。

     想一想,既然是即时窗口肯定是在调试的时候才有用,那么怎样打开它呢?调试——窗口——即时窗口,或快捷键:Ctrl+D,I

11.怎样在硬盘中快速找到项目中的文件?

     如果你在使用VS,想拷贝项目中的某个文件,不要再去硬盘中一个目录一个目录深入了,在VS中打开该文件,然后右键该选项-打开所在的文件夹即可,见图:

     

     

12.怎样快速调整文档或某段代码的格式?

     现在大家写代码都喜欢拷代码,可是拷过来的代码有时候毕竟不像写的那样格式很正确,排的很整齐,怎麽办?手动一行一行地调整?不用!

交给VS来做这无聊的工作吧:选择编辑——高级——设置文档的格式 或 编辑——高级——设置选中代码的格式。有了它再也不怕代码排版不美观了。

13.怎样快速把文件加入到项目中?

     打开VS,直接把文件粘贴到想要放置的文件夹中即可。

14.怎样强制调用智能提示?

     如果没有VS的只能提醒,估计好多人都不会写代码了。可是智能提醒又不是能够让我们随心所欲地使用,过了那个时候你鼠标再怎么移动它都不会出来,搞的我们有时候不得不把原来写的代码删除一部分重新点个”.”来调用智能提醒。

     其实VS中有个快捷键,能够真正让我们达到随心所欲,想什么时候看智能提醒就什么时候看。

     把光标放到想调用智能提醒的地方,然后输入Ctrl+J,看吧,熟悉的智能提醒又出来了。见图:

     

15.怎样强制调用参数信息?

     一个方法的参数信息也是很重要的,可是它有时候会使哦我们存在和14条中相同的困惑。怎样让我们“想看就看”呢?

     记住这个快捷键:Ctrl+Shif+空格,让你想看就看。 光标放到参数名上面,然后输入Ctrl+Shif+空格,看看什么出来了:

     

16.怎样跳转到指定的行?

     两种方法,能够快速定位到文档中的某一行:1.Ctrl+G  2.单击状态栏中的行号,如下图:

     

17.怎样使用向前定位及向后定位快捷键?

     相信VS中的“转到定义”大家都喜欢用,可是转到定义之后怎么能够快速地转回来呢?下面这个快捷键会节省你“转回来”的时间:

     Ctrl+_ 。如果你转回来之后还想转到定义,直接输入:Ctrl+Shif+_ 就好了。来回切换吧,想怎么看就怎么看。

     如果你说这样看着太累了,那再告诉你一个更简洁的方法:打开:视图——代码定义窗口,然后你再在页面中把鼠标点到某个方法上,看看代码定义窗口中显示的是什么:

     

18.怎样快速切换不用的页面?

     Window中切换不同的窗口的快捷键你知道吧:Alt+Tab,那么VS中也有:Ctrl+Tab,看看效果吧:

     

19.怎样快速隐藏或显示当前代码段?

     Ctrl+M,M
20.怎样同时修改多个控件的属性?

     选中多个控件,然后右键属性,这个时候这些控件共有的属性就会出现,修改之后所有的控件都会变化。
21.怎样录制与播放临时宏?

     如果你在VS中需要不断重复一系列键盘操作的时候,这个时候你可以考虑让VS自己写代码了。使用VS中的宏功能,把你的一系列需要不断重复的键盘操作给录制下来,然后直接执行宏就能让VS自己写代码了。

     录制:工具-宏-记录临时宏,Ctrl+Shif+R
     播放:工具-宏-运行临时宏,   Ctrl+Shif+P 
     保存:工具-宏-保存临时宏.,可以重命名宏

     

     后记:OK,这个系列写完了,对VisualStudio你更熟悉了吗?“工欲善其事,必先利其器”,让我们拿起VisualStudio这把利器,打造更美好的明天吧!That’s all.

来自:http://www.cnblogs.com/qqflying/archive/2008/11/24/1337489.html

Categories: ASP.net, Web Tags: , ,

详解VisualStudio使用技巧一

June 11th, 2009 Tony hu No comments

     VisualStudio虽然大家每天都在使用它,但是可能有些功能的使用大家并不清楚,甚至不知道有这项功能,下面这些技巧可能会对你有所帮助。

     先上目录:

     第一节:

     怎样给自己的代码添加版权信息。
     怎样给自己的代码添加代码段。
     怎样使用任务管理器。
     怎样使用发布网站功能。
     怎样把常用代码放到工具箱中的常规选项中。
     怎样怎样在多个窗口查看同一个文档。
     怎样创建区域,方便代码阅读及维护?
     怎样创建矩形选区?

     下面就一条一条来详解:

     1.怎样给代码添加版权信息。

     写代码经常会要写一些版权信息、或者一些常用的命名空间引用,如果每个页面都拷贝粘贴一遍,确实挺麻烦的。有什么可以让我们一劳永逸的办法呢?vs中的模板功能来可以帮助我们达到这个目的。

     解决办法:   直接把D:Program FilesMicrosoft Visual Studio 8Common7IDEItemTemplates文件夹中的相应的模板压缩包Copy到C盘的My DocumentsVisual Studio 2005Templates中的相应位置,然后修改添加上自己要添加的信息。 然后在添加新项的时候选择“我的模板”下面的项即可。

     示意图如下:

WebForm模板

 

 

  

注意:WebSite模板和Web应用程序模板是不一样的。   

2.怎样给代码添加代码段?

     编码过程中,经常会有一些常用的代码结果会反复使用,有没有一种办法把这些代码嵌套到VS IDE中呢?

     解决办法:完全没问题,使用snippet文件能很好的解决这一问题。打开Program FilesMicrosoft Visual Studio 8VC#Snippets2052Visual C#里面有很多VS自带的snippet文件,你只需要复制一下,然后把它修改成自己的代码段即可。

     见图示:

     

     代码如下:

     

Code

 

使用:

如上图:找到自己设置的代码段的别名,输入回车键,然后输入tab键,即可自动生成如下代码:

 

3.怎样使用任务管理器?

     假如我们开发的项目很大,在项目中有些代码没有完成,我们可以做一下标记,便于将来查找

     VS中的任务管理器能够很好地解决这一问题,使用方法:在要标志的地方输入://TODO:内容,然后在视图——任务列表中打开所有的任务列表。

4.怎样使用发布网站功能?

     在我们部署Web应用程序的时候,像.cs等文件因为已经生成了dll,对部署站点是没有什么用处的,这个时候一般都是手动去删除这些没用的文件,有没有更快捷的办法来完成这项工作呢?VS自带的发布功能能够很好地解决这一问题。

     选中项目——右键属性——发布(Publish) 或者选择生成(Build)——发布(Publish)打开如下对话框:

     

5.怎样把备份常用代码,快捷方便下次使用?

     在编码过程中我们会经常编写一些重复的代码,怎样把这些代码备份起来,下次使用的时候能够快捷地调用出来呢?

     工具箱中的常用选项能够达到这个功能,把我们常用的代码拖放到工具箱中的常用选项卡中,下次使用的时候直接双击就行了。如下图:

     

6.怎样在同一个窗口中查看一个文档的不同部分?

直接见图:

     

拖动后下效果见下图:

看到了吗?一个文档被分成了两个!你可以在一个窗口中同时查看这个文档的头部和尾部。

怎样还原过去呢?直接拖动那个小条条,恢复原位就行了。

7.怎样创建区域,方便代码阅读及维护?

     添加

     #region

     //代码区域

     #endregion

8.怎样创建矩形选区?

     有时候我们只想复制一段代码的前几列,后几列不想复制,怎样才能达到这种效果呢?

     很简单,摁住alt键,然后拖动鼠标即可,效果如下:

     

来自:http://www.cnblogs.com/qqflying/archive/2008/11/19/1336094.html

Categories: ASP.net, Web Tags: , ,

left join,right join,inner join,full join,cross join

June 11th, 2009 Tony hu No comments

left join   :左连接,返回左表中所有的记录以及右表中连接字段相等的记录(右表中不存在的显示NULL)。
right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录(左表中不存在的显示NULL)。
inner join: 内连接,又叫等值连接,只返回两个表中连接字段相等的行。
full join:外连接,返回两个表中的行:left join + right join (两个表中都可能出现NULL)
cross join:结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。
补充说明:如果表一中的某行对应表二中的两行记录,那么结果集中会有两条记录对应,right join也同样道理。
——————————————————————-
例子

declare @a table(a int,b int)
declare @b table(a int,b int)

insert @a values(1,1)
insert @a values(1,1)
insert @a values(2,2)
insert @b values(1,1)
insert @b values(3,3)
select * from @a
select * from @b
--左:
select * from @a Aa left join @b Bb on Aa.a=Bb.a
--右:
select * from @a Aa right join @b Bb on Aa.a=Bb.a
--内
select * from @a Aa inner join @b Bb on Aa.a=Bb.a
--外:
select * from @a Aa full join @b Bb on Aa.a=Bb.a
--交叉连接
select * from @a cross join @b

Categories: Database, Sql Server Tags: ,