Dec 26, 2007

Insert Table Using Trigger

insert 表
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 8.0;IMEX=1;HDR=YES;DATABASE=c:\test.xls' --c:\test.xls是excel文件名
,sheet1$) --sheet1$是工作表名+$

alter Trigger CheckandExist on temp_employee_info

for insert,delete,update

as

if not exists (select * from deleted)

if not exists (select * from employee_info where employee_info.CDSID=(select CDSID from inserted))

insert employee_info(CDSID,Name,Email) select CDSID,Name,Email from inserted
else

update employee_info
set
employee_info.Name=(select Name from inserted),
employee_info.Email=(select Email from inserted)


where
employee_info.CDSID=(select CDSID from inserted)

Oct 10, 2007

如何找到控件的父控件

Code Enough...

TabContainer myTabContainer=(TabContainer)this.Parent.Parent.FindControl("TabContainer1");
myTabContainer.ActiveTabIndex=4;
User Control Level
System.Web.UI.UserControl myASCX = new System.Web.UI.UserControl();
myASCX = (System.Web.UI.UserControl)this.Parent.FindControl("A1");
TextBox myTextBox;
myTextBox = (TextBox)myASCX.FindControl("TextBox1");

Sep 28, 2007

[转]安装.NET2.0后运行出现Failed to access IIS metabase错误解决办法.

笔者以前安装的是.NET1.1,后再在安装.NET 2.0后,无法再正常使用.出现

Failed to access IIS metabase

的错误,用自由微软的方法也无法解决.后来用以下办法成功解决问题:

1.在电脑管理里删掉ASPNET用户.

2.卸掉ASP.NET 2.0

3.卸掉IIS.

4.重装IIS,重装NET2.0

测试通过.

估计是ASPNET用户没有成功将权限分配给ASP.NET 2.0所至.但不明白为什么用微软的办法重新注册也解决不了,一定要重新安装.

感谢:denjackson

Sep 17, 2007

初试 Ajax

一直听说新技术,却一直赶不上新技术,这不,很久以前就知道的Ruby,这个在Code 兵器排行榜上一路飙升排名第三的语言,我到现在还没有学习。
以后一定要好好学习一下,今天在这里郑重承诺。
Ajax也是这样,我听说了很久Ajax是如何强悍,但是在我装了Ajax Control Tool 以后,就尝试了一下。首先,我用的是Tab功能。但是我发现我的Tab下面没有显示,被什么东西给挡住了。
我在想为什么呢?
我发现Tab的CSS没有效果,我觉得这是怎么了?
我反编译了那些软件,发现有一张图片显示不出来,试图重新添加,发现还是没有效果,难道微软的dll有错误,微软应该不会做这样的事情。

最后我怀疑是不是框架上面有问题,后来自己用了一个很简单的网页进行了测试,发现不是框架的问题。
最后,我只有一行一行的代码对照,终于发现了是这句话在起作用:

"
]]>"
那么这句话到底什么用呢?

我在网上找到了这个文章 http://www.purecss.cn/article.asp?id=318
感谢他的作者。

当我们制作页面的时候,总会在它的源码头部看到一串声明,

如果我们把这些代码去掉,会发现页面可能会有比较明显的变化,因为这样造成了有些样式的表现不一样。 这些代码我们称做DOCTYPE声明。DOCTYPE是document type(文档类型)的简写,用来说明你用的XHTML或者HTML是什么版本。DOCTYPE声明必须放在每一个XHTML文档最顶部,在所有代码和标识之上。 其中的DTD(例如上例中的xhtml1-transitional.dtd)叫文档类型定义,里面包含了文档的规则,浏览器就根据你定义的DTD来解释你页面的标识,并展现出来。 要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分;除非你的XHTML确定了一个正确的DOCTYPE,否则你的标识和CSS都不会生效。

怪不得啊,这些效果没有出来,原来是这样。呵呵,总算明白了。

Sep 7, 2007

如何在Access中创建两个字段的约束

要解决这个问题,首先要解决如何在Access中输入Sql的问题。

解决方法:先打开一个(或者新建)数据库。点queries,双击create query in design view关掉show table在上面灰色空白的地方点右键,Sql view就可以输入命令了.

然后就可以用Sql命令来解决了:

ALTER TABLE tblCustomers ADD CONSTRAINT CustomerNames UNIQUE ([Last Name], [First Name])

哈哈,解决了。

Jun 29, 2007

太多的感想,需要总结(一)

一直对于一些在程序中司空见惯的东西无动于衷,所以很麻木,但是今天终于明白了一些东西。
来源于CSDN上面的一个问题,
现在有一个聊天室,每个房间都有一个radiobutton而不是一个radiobuttonlist,他们都autopostback,每次postback时都要获取他的value,我可以为每个radiobuton写一段代码,这样可以获取value,但是可以就写一段吗,就像为很多个button指定不同的commandname一样,但是事件相同onclick="enter_click"
谢谢
zhangweisjz(啸傲沧海) ( ) 信誉:100 Blog 加为好友 2007-06-29 11:18:05 得分: 0


public void enter_click(Object sender, EventArgs e){
//在sender 上面做文章
string myName=((RadioButton)sender).Name.ToString();
if(myName=="张三"){
}
if(myName=="李四"){

}

}

哈哈,这是我的回答。能不能得分呢?我们拭目以待。

Jun 22, 2007

我所写过的最复杂的Sql 语句——合并记录,合并值

select distinct A.word, sum(A.count) as Count


from ( select WORD_B as Word,CO_LIT_COUNT as Count from WORD_RELATION_MATRIX
where WORD_A like '知识管理'
UNION all
select WORD_A,CO_LIT_COUNT from WORD_RELATION_MATRIX where WORD_B like '知识管理') A
group by A.word order by Count desc

Jun 18, 2007

皇马下赛季展望

四年的期待有多大的份量?当看到卡西在第一个进球后夺眶而出的泪水时,你就知道它有多重,就知道皇马的将士承受了多大的压力。
四年的渴望有多大的力量?当看到贝克汉姆打封闭上场,卡洛斯、萨尔加多几乎拼命的争抢时,你就知道,这种渴望能给人多大的力量。
四年的收获有多大的幸福?当你看到迪亚拉两次跪着亲吻土地,看到你我彻夜不眠却仍精神振奋的情形,就知道这种发自内心的喜悦能给人带来多大的喜悦。

当胜利的喜悦渐渐平静的时候,我们该想些什么呢?
回顾本赛季皇马夺冠的历程,如果这是一部话剧,即使最有才华的作家也写不出如此惊心动魄、跌宕起伏的剧本,也许上帝本人看了,也会对自己这近乎神话般的创作而惊讶不已。
形容本赛季皇马最后阶段的表演,只有一个字最为贴切——“险”!
3比2胜塞维利亚,3比2胜维尔瓦,2比2平萨拉格萨……最后一轮的惊险已经无需多言:只要马洛卡那个单刀再偏十几厘米,也许这一切的努力都将化为泡影。但是,最终我们得到了冠军,我们在丰收女神广场疯狂的庆祝。
明年我们还能再来到女神身旁吗?
看看皇马自身以及竞争对手的情况,我们只能说局面依然困难,但大幕已经开启。
首先,皇马还存在着不少动荡的因素,而且是影响大局的重大因素。
第一,卡佩罗是否留任。本赛季卡帅的表现争议颇多,从球迷到董事会对其看法都有分歧。若不换,卡氏足球是否适合皇马?本赛季的一次次救赎还能否重现?这到底是卡帅的兵行险道还是球员的自我拯救?若重选教练,换帅如换刀,新帅势必带来新的磨合期,新帅的执教理念又会带来怎样的冲击?目前的人员构成能否符合新帅所擅长的打法?
第二,主席是否稳固,球队经理之争结果如何。卡尔德隆摇摇晃晃的坐上主席之位,之后就一直风雨飘摇般的在这个位置上遭受着各方的压力。球队管理上,米亚托维奇和桑切斯的明争暗斗始终存在。当俱乐部的首脑心神不宁,内部斗争纷乱不休,在如此大的内耗下,高层们还有多少力量去管理球队的正常运转,还有多少力量去和其他俱乐部斗智斗力?
接着,球员的去留带来打法的变化。当最后阶段贝克汉姆屡屡帮助球队的时候,多数人都在呼唤着他的留下,当确定要走的消息从他嘴里斩钉截铁的说出来的时候,我们将面临着下个赛季贝克汉姆不在的时候。贝克汉姆不在,代表了任意球质量的下降,代表了右路进攻手段的改变。当我们所依赖的右边路缺少那高质量的传球后,皇马的打法又将转向何方?11年的功勋球员卡洛斯也离去了,卡萨诺离去了,雷耶斯、埃默森、卡纳瓦罗也去留不明,难道让一帮青年近卫军暴露在老谋深算的西甲诸强脚下?年轻队员的起伏不定,经验欠缺也许会将明年变成一份必要的学费。
然后,对手实力的增强。国内赛场群雄并起,巴萨一如既往的强大,传言中亨利的加盟不得不让人对下赛季的巴萨的强大实力产生担忧的心理。放眼国外赛场,现在的国际米兰、AC米兰、切尔西、不可不谓兵强马壮,皇马要想捧起久违的冠军杯,以现在的人员构成还真是前路漫漫。
最后,转会市场困难重重。谁都知道皇马对于卡卡的渴望,可是AC一次又一次的以奇货可居,甚至对我们进行侮辱。还有C罗,罗本,法布,里贝里,阿尔维斯,不是此路不通就是已有所属,转会市场上皇马呼风唤雨的时候已经不复返了,难以补充最需要的人员也会影响下赛季球队人员的构建。
说这些并不是说丧气话,而是我们要把困难估计的足一点。总而言之,下赛季的皇马想要卫冕,想问鼎欧洲还面临着各方面的问题,希望大家各抒己见,谈教练,论打法,说高层,讲转会,展望下赛季的情况。苟用滕王阁序一段作结:
临别赠言, 幸承恩于伟饯; 登高作赋, 是所望于群公。
敢竭鄙诚, 恭疏短引。一言均赋, 四韵俱成。
请洒潘江, 各倾陆海云尔。

Jun 14, 2007

Sql语言之沧海一滴,时间查询

似乎我最头疼的就是DateTime类型的数据了。一部分原因是由于DateTime数据存储的是
年月日和时分秒,所以处理起来麻烦,还有原因是由于这部分的函数和一些常用的处理方法不熟,一句话,不就是认生嘛。
今天遇到一个问题,Sql Server里面要判断某个日期相等。
即如何与一个DateTime类型的字段值进行相等比较?这其中有这样的问题:
1、一般来说,用户输入的日期值就是yyyy/mm/dd,不带时、分、秒;
2、数据库中存储的日期值是带时、分、秒的。

所以我必须假定:我们所谓的两个日期相等就是年、月、日相等。
这里有一个比较好的处理方法,


假定我们要查的日期是2004/7/10,则其实我们想要的就是这一天的00:00:00至23:59:59之间的。提到之间,我们就会想到between...and!!只要 between 2004/7/10 and 2004/7/11 即可了。具体地说:between Cast('2004-7-10' as DateTime) and dateadd(day, 1, Cast('2004-7-10' as DateTime))。但这个方法有一个小小问题,它会把7/11 0点的东西也找到,而这其实不应算做7/10的。如果你还想精益求精的话,就只能用...>=... and ...<... 了。(一般情况下没有必要)

Jun 4, 2007

没有金刚钻,也揽瓷器活

常常责怪自己,当初不应该……

古人云,没有金刚钻,不揽瓷器活。意思和看菜吃饭,量体裁衣,因材施用,量入为出差不多。

这也符合我的想法,我有一个关于择业的论调。

以后如果我的小孩,生出来智商在135以下,那我绝对不让他做程序员。

今天的情形有一次佐证了我的想法。

论文截至日期临近,本来时间非常宝贵,遇到一个解析XML的事情。

不久是遍历嘛,用递归的方法嘛。说是在的,我写程序最喜欢写普通的循环,

遇到递归就头疼的很,好像思维就是没有那种层层推进的感觉。

今天的情况就是:原来以为30分钟就能搞好的代码,从8点钟开始写,不断的修正,不断的实验,总是看不到我想要的结果,如果我练过铁头功,那么我住的地方现在已经是蜂巢了。

终于到下午2点钟,得到了我想要的结果。虽然最终实现了自己的需求,但是我不禁在想,如果一个厉害的人,估计是不用这么长时间,就能很轻松的搞定这个事情,唉,我这又是何苦呢,走上了这一条和编程相关的工作。

然而既然走上了这条道路,就要一直走下去,而且要很努力的奋然前行,总有一天你会看到,就是当年“没有金刚钻,也揽瓷器活”的勇气,带来了日后令人欣慰的成绩。

祝天下所有没有天赋的程序员,拥有好运。


Jun 3, 2007

惠普,你要加油了

惠普给我的印象一直是不上不下。感觉什么都做,却又往往都做不到第一。卖电脑卖不过Dell,做电脑做不过华硕,做软件服务做不过IBM, 卖服务器也卖不过蓝色巨人,也许只有打印机的业务还勉强说的过去。
去年因为招聘的事情,惠普给我的印象很不好,不过话说回来也应该感谢他,也算是机缘巧合了。
为什么现在又提起这个本来和我没什么干系的公司呢?
因为我现在在用jena插件——一个查询本体的API。
发现jena的版本里面好多东西真的做的不怎么样,举几个例子。
我们知道OntClass有listSuperClasses的函数,但是Individual就没有了?
你能说“歼击机”的上位类是“军用飞机”,而F16就没有上位类了?
还要我从Root还是查找到实例,从上到下梳理一遍,不知道HP那些人怎么想的。
还有,
在API Document中指出, listSuperClasses(boolean direct)
如果:listSuperClasses(true),则仅仅列出直接的上位类,
如果:listSuperClasses(false),则把它的祖宗们全找出来,
结果发现呢,无论true还是false,结果都是一样。这叫什么?不负责任。
同样还有listSubClasses(boolean direct),都犯了同样的错误,令人无语。
也许他们不知道,就是这样的一些缺陷,不断消磨了潜在顾客的信心,
小处不慎,焉能托之以江上社稷也?
也难怪步步维艰了,HP,你要加油了。

Jun 2, 2007

dom4j 中文问题:java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence.

几乎每一个编程的人都会遇到中文的问题,但偏偏你可能不知道问题是由于中文引起的,而往往从代码逻辑中寻找原因。也难怪,谁能想到我们伟大祖国的文字在八国联军以及小日本鬼子的开发工具里面就成了导致错误的罪魁祸首了呢?

在XML的开发中,我就遇到了类似的问题。
在Dom4J的API支持下,

Document document=null .........
XMLWriter output = new XMLWriter(new FileWriter(new File( "c:/test/Interest.xml")));
output.write(document);
然而在用SAX解析的时候却出现了这样的问题:
SAXReader saxReader = new SAXReader();
Document document=null;
document = saxReader.read(inputXml);
报错:java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence.
查了半天代码,最后才发现:是UTF字符的问题。当XML中含有中文,而没有指定XML Encoding="UTF-8"的时候,就会产生这样的错误。(咬牙切齿,磨刀霍霍向鬼子)
修改方法:
OutputStream os=new FileOutputStream("c:/test/Interest.xml");
XMLWriter output=new XMLWriter(new OutputStreamWriter(os,"UTF-8"));
output.write(document);
总有一天,我们要用我们的冠绝天下的工具来折磨那些不重视我们中国语言的人。

Jun 1, 2007

关于SAX,DOM,JAXP,JDOM,DOM4J的一些理解(转)

第一:首先介绍一下SAX,DOM,JAXP,JDOM,DOM4J的基本知识:(注意:至于 JAXP JAXB JAXM JAXR JAX-RPC 分别指什么,查看http://gceclub.sun.com.cn/staticcontent/html/xml/faq/#jaxr_)
1、sax、dom是两种对xml文档进行分析的方法(没有具体的实现,只有接口)所以不是解释器,如果光有他们,你是完成不了对xml文档的处理的。sax的包是org.xml.saxdom的包是org.w3c.dom包的名称很重要,它有助于你理解他们之间的关系。

2、jaxp是api,他封装了sax\dom两种接口。并在sax\dom的基础之上,作了一套比较简单的api以供开发人员使用。jaxp的包是javax.xml.parsers可以看看jaxp的源文件,它的文件中包含了对sax或者dom的引用(import)jaxp也不是具体的实现,他只是一套api。如果你仅仅有jaxp那是无法工作的(其实jaxp只是完成对sax、dom的包装,生成了DocumentBuilderFactory\DocumentBuilder和SAXParserFactory SAXParser。也就是设计模式中的工厂模式,他的好处就是具体的对象( 解释器)建立由子类完成)

3、xerces解释器(号称地球上最快的xml解释器)在xerces中对jaxp中定义的SAXParser SAXParserFactory DocumentBuilder DocumentBuilderFactory进行了继承(extends)对应SAXParserImpl SAXParserFactoryImpl DocumentBuilderImpl DocumentBuilderFactoryImpl这就是为什么你的classpath中只要有xerces.jar(其中包含了sax dom jaxp )和 xercesImpl.jar就可以的原因了.

4、什么时候可以用别的解释器 比如crimson呢他也是和xerces一样 是解释器,很简单,用crimson.jar 替代xercesImpl.jar

5、jdom和dom4j W3C的DOM标准API难用的让人想撞墙,于是有一帮人开发Java专用的XML API目的是为了便于使用,这就是jdom的由来,开发到一半的时候,另一部分人又分了出来,他们有自己的想法,于是他们就去开发dom4j,形成了今天这样两个API,至于他们之间的性能,jdom全面惨败,dom4j大获全胜。我觉得jdom和dom4j就相当于sax/dom+jaxp,具体的解释器可以选择。

第二:再介绍一下,dom,sax,jdom,dom4j的技术特点:
1: DOMDOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。
DOM 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而 DOM 被认为是基于树或基于对象的。DOM 以及广义的基于树的处理具有几个优点。
首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,而不是像 SAX 那样是一次性的处理。DOM 使用起来也要简单得多。
  另一方面,对于特别大的文档,解析和加载整个文档可能很慢且很耗资源,因此使用其他手段来处理这样的数据会更好。这些基于事件的模型,比如 SAX。
2:SAX  
这种处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。一般来说,SAX 还比它的替代者 DOM 快许多。
3: 选择 DOM 还是选择 SAX ?
  对于需要自己编写代码来处理 XML 文档的开发人员来说,选择 DOM 还是 SAX 解析模型是一个非常重要的设计决策。
  DOM 采用建立树形结构的方式访问 XML 文档,而 SAX 采用的事件模型。
  DOM 解析器把 XML 文档转化为一个包含其内容的树,并可以对树进行遍历。用 DOM 解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。可以很容易的添加和修改树中的元素。然而由于使用 DOM 解析器的时候需要处理整个 XML 文档,所以对性能和内存的要求比较高,尤其是遇到很大的 XML 文件的时候。由于它的遍历能力,DOM 解析器常用于 XML 文档需要频繁的改变的服务中。
  SAX 解析器采用了基于事件的模型,它在解析 XML 文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。SAX 对内存的要求通常会比较低,因为它让开发人员自己来决定所要处理的tag。特别是当开发人员只需要处理文档中所包含的部分数据时,SAX 这种扩展能力得到了更好的体现。但用 SAX 解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。

4:jdom http://www.jdom.orgJDOM 的目的是成为 Java 特定文档模型,它简化与 XML 的交互并且比使用 DOM 实现更快。由于是第一个 Java 特定模型,JDOM 一直得到大力推广和促进。正在考虑通过“Java 规范请求 JSR-102”将它最终用作“Java 标准扩展”。从 2000 年初就已经开始了 JDOM 开发。
  JDOM 与 DOM 主要有两方面不同。首先,JDOM 仅使用具体类而不使用接口。这在某些方面简化了 API,但是也限制了灵活性。第二,API 大量使用了 Collections 类,简化了那些已经熟悉这些类的 Java 开发者的使用。
  JDOM 文档声明其目的是“使用 20%(或更少)的精力解决 80%(或更多)Java/XML 问题”(根据学习曲线假定为 20%)。JDOM 对于大多数 Java/XML 应用程序来说当然是有用的,并且大多数开发者发现 API 比 DOM 容易理解得多。JDOM 还包括对程序行为的相当广泛检查以防止用户做任何在 XML 中无意义的事。然而,它仍需要您充分理解 XML 以便做一些超出基本的工作(或者甚至理解某些情况下的错误)。这也许是比学习 DOM 或 JDOM 接口都更有意义的工作。  JDOM 自身不包含解析器。它通常使用 SAX2 解析器来解析和验证输入 XML 文档(尽管它还可以将以前构造的 DOM 表示作为输入)。它包含一些转换器以将 JDOM 表示输出成 SAX2 事件流、DOM 模型或 XML 文本文档。JDOM 是在 Apache 许可证变体下发布的开放源码。

5: DOM4J http://dom4j.sourceforge.net/ 虽然 DOM4J 代表了完全独立的开发结果,但最初,它是 JDOM 的一种智能分支。它合并了许多超出基本 XML 文档表示的功能,包括集成的 XPath 支持、XML Schema 支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项,它通过 DOM4J API 和标准 DOM 接口具有并行访问功能。从 2000 下半年开始,它就一直处于开发之中。  为支持所有这些功能,DOM4J 使用接口和抽象基本类方法。DOM4J 大量使用了 API 中的 Collections 类,但是在许多情况下,它还提供一些替代方法以允许更好的性能或更直接的编码方法。直接好处是,虽然 DOM4J 付出了更复杂的 API 的代价,但是它提供了比 JDOM 大得多的灵活性。
  在添加灵活性、XPath 集成和对大文档处理的目标时,DOM4J 的目标与 JDOM 是一样的:针对 Java 开发者的易用性和直观操作。它还致力于成为比 JDOM 更完整的解决方案,实现在本质上处理所有 Java/XML 问题的目标。在完成该目标时,它比 JDOM 更少强调防止不正确的应用程序行为。  DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J。

最后:我建议用dom4j
 JDOM 和 DOM 在性能测试时表现不佳,在测试 10M 文档时内存溢出。在小文档情况下还值得考虑使用 DOM 和 JDOM。虽然 JDOM 的开发者已经说明他们期望在正式发行版前专注性能问题,但是从性能观点来看,它确实没有值得推荐之处。另外,DOM 仍是一个非常好的选择。DOM 实现广泛应用于多种编程语言。它还是许多其它与 XML 相关的标准的基础,因为它正式获得 W3C 推荐(与基于非标准的 Java 模型相对),所以在某些类型的项目中可能也需要它(如在 javascript 中使用 DOM)。  SAX表现较好,这要依赖于它特定的解析方式。一个 SAX 检测即将到来的XML流,但并没有载入到内存(当然当XML流被读入时,会有部分文档暂时隐藏在内存中)。  无疑,DOM4J是最好的,目前许多开源项目中大量采用 DOM4J,例如大名鼎鼎的 Hibernate 也用 DOM4J 来读取 XML 配置文件。如果不考虑可移植性,那就采用DOM4J吧!

May 31, 2007

小小的发现,SWT-Designer

当我们重装系统的时候,往往发现,SWT-Designer又需要激活了。
对于SWT-Designer真是又爱又恨,爱是因为做的实在是棒,恨却是因为价钱很高,看了一下,一年200$,难怪D者众多,居然和Windows一个价,民非欲反,为官所逼耳!
言归正传,激活的key工具很多,网上很容易就找到。
现在的问题在于,如果已经激活了一次,SWT-Designer的激活license保存一份拷贝,下次把license放在同一路径就可以了。
license Name: Instantiations.license
Path: C:\Documents and Settings\YourName\

May 30, 2007

dom4j

XML是一个好东西,一个几乎可以说刚进大学的时候就耳熟能详的东西,然而直到临近毕业,才开始动手做与XML相关的东西,不觉唏嘘感慨,年华虚度,空负岁月。

首先,那么多的名词就让我头昏眼花,报一报我脑袋里刚装下的名词吧。

XML, XSLT, XPath, XQuery,Dom4J,Xerce! 还有很多很多。

我一时没有理解,反正DOM和SAX一个内存吃的凶,一个吃的少。Dom4J提供了很多的API给你,然后可以和其他的很好的兼容,我就采用了dom4j。

按照IBM的教程写了一个Write XML的类,写了一个Modify XML的类,然而ModifyXML的时候,老是报错,这个错误我看也看不懂,找也找不到:
Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/JaxenException
在我调试程序若干次无疾而终的时候,我想到把这个错误放到google中搜索看看,结果发现:
原来是有一个包没有导入,但是Eclipse没有提示缺少包——需要吗?不需要吗?你不说我怎么知道呢?
原来dom4j除了dom4j.jar外,还需要导入:jaxen-1.1-beta-6.jar
终于解除了问题。

May 28, 2007

Sql Server 字符型 转换为 DateTime型

也许是字符型是容错性最好的数据类型,在转换是,如果遇到问题,一般都可以将其转换为字符型再做进一步的处理。
下面的问题是:
如何将字符型(NVarChar)的转换为DateTime型,
完全命令的方式我还没有找到,但是手工有一个好方法:
首先,找出不合格的数据:
select * from 表名 where isdate(列名)=0
你可以手动删除或者,delete from 表名 where isdate(列名)=0
其次,将空格变为null
update 表名 set 列名=null where 列名=''
然后,改为DateTime类型即可。

May 10, 2007

编辑的时候动态绑定DropDownList内容




This is a trick. Just write it here for external memory.


The condition is this:


In a datagrid, if there is a value, and the value is gained from database;


so when you modify, the value select become a dropdownlist, how can


And if the dropdownlist is gained from database, and when you modify, you have a exitex value, how can the dropdownlist select the existed value as default?




The code is as this:






' visible="false">












string TM=((Label)e.Item.FindControl("lblHideTM")).Text;


for(int i=0;i

ddlTrainingMethod.SelectedIndex=i;


if(ddlTrainingMethod.SelectedItem.Text==TM){


return;


}


}


May 4, 2007

健康生活:电脑族每天宜喝四杯茶


面对电脑时间长了不好,那该怎么办?其实每天四杯茶,不但可以对抗辐射的侵害,还可以保护眼睛。


  1. 上午一杯绿茶:绿茶中含强效的抗氧化剂以及维生素C,不但可以清除体内的自由基,还能分泌出对抗紧张压力的激素。绿茶中所含的少量咖啡因可以刺激中枢神经,振奋精神。不过最好在白天饮用,以免影响睡眠。

  2. 下午一杯菊花茶:菊花有明目清肝的作用,有些人就干脆用菊花加上枸杞一起泡来喝,或是在菊花茶中加入蜂蜜,都对解郁有帮助。

  3. 疲劳了一杯枸杞茶:枸杞子含有丰富的β胡萝卜素、维生素B1、维生素C、钙、铁,具有补肝、益肾、明目的作用。其本身具有甜味,可以泡茶也可以像葡萄干一样作零食,对解决电脑族眼睛涩、疲劳都有功效。

  4. 晚间一杯决明茶:决明子有清热、明目、补脑髓、镇肝气、益筋骨的作用。

季后赛硝烟弥漫

  季后赛第一轮已快接近尾声……
  火箭今天在爵士的魔鬼主场败下阵来,总比分变成3:3。看比赛后,感觉今天火箭求胜心切,导致失误频频,在最后五分钟比分只差一分的情况下没能把握住机会,被勇士打出了13比4的高潮,击垮了火箭的斗志。最具悬念的季后赛生死大战将在星期天打响!13亿中国同胞的支持,占据着主场的优势~天时地利人和,愿火箭能顺利挺进第二轮!
  今天另一场焦点大战勇士对小牛,“黑八奇迹”果然上演!虽然没看比赛,赛后技术统计可以发现,今天诺维斯基13投2中,8分,10个篮板,如此失常的超低水平发挥应该是导致小牛失败的主要原因。而勇士五人得分过双,斯蒂芬拿到了全场最高的33分。老尼尔森的老谋深算,勇士队员的骁勇善战,快乐篮球势不可挡!
  昨天,科比和艾弗森双双失意,湖人和掘金本赛季前进的脚步就此打住。2001年,小艾带着身上十多处伤痛站在总冠军的赛场上时,被他深深地吸引和感动着。六年了,这个球场上的精灵带着永不屈服、永不退缩、永不放弃的精神拼搏奋斗着,那份坚定那份执著值得每个人珍藏!转会到掘金后,“双枪合璧”,多希望能看到他再次站在总冠军争夺的赛场上,可惜……喜欢科比,他的突破、跳投、上篮、三分一切都如此美轮美奂,看他打球绝对的享受!但湖人的失败早已注定——球队最需要的是整体配合,而湖人似乎早已变成了科比一个人的球队,一个人无论自己的能力意志再强,也无法扛着整个球队一直前行。
  一切都已过去,只能企盼来年,期待下个赛季!

  

adidas的广告:
  You are played(你被耍了)
  Whenever I button up a basket (每当我扣篮)
  Chop down 30.40 cents(砍下30.40分)
  You Still really think (你还真以为)
  That is I a personal dry (那是我一个人干的)
  However serious (不过说真的)
  The game is five people (比赛,是五个人的)
  Believe it or not (信不信由你)

Apr 29, 2007

上海国际汽车展系列之一——豪华车

2007年4月22日,第十二届上海国际汽车工业展览会在上海展开。我去看了这场展览,记录下了一些精彩的片断,和朋友们分享。同时也感谢借给我相机的同事。


豪华车






法拉利跑车,无论何时,法拉利都是万众瞩目的焦点。等了半天,才抢到一个拍摄的好位置。






这个MM据说 1.5万/天,恩,约==6000只鸡腿,约==1500斤猪肉,
如果我一天吃4个鸡腿或2斤猪肉。恩,这个MM站一天,我可以吃2年!




展厅上空的蓝色灯,衬托出一种冷峻的高雅。




漂亮的BENZ 美眉。



道奇,车的Logo很好玩,是个羊角。











一直不喜欢宝马,负面新闻太多了。




劳斯莱斯,比较气魄,在一个显眼的地方,诺大的空间,只放了2辆车。
观者如堵。


未完待续,下期预告:福特篇。

代码重用,全局变量

灵活是一个好程序的必要条件。灵活多变的程序中比一成不变的代码要显得有生气的多。
比如,在判断条件的时候,我们选择所有的中国人。
if(country=="中国"){
......
}
但如果,程序在英语环境中使用,势必要变成if(country="Chinese"){}
那岂不是要改动源代码,诸如此类的东西东一块,西一块,那就要头痛不已了。

正是如此,催生了代码重用的产生。

在ASP.NET中,有两种方法来实现代码重用和全局变量。
一种办法:
在项目根目录下面新建一个名为“App_Code”的文件夹,(网站运行时系统会自动编译这个App_Code文件夹里面的代码)。然后建立一个类,例如“SystemDefine.cs”
在其中写一个通用函数
public class SystemDefine{
public const string TEST="Hellooooo";

public const string COUNTRY="中国";
public const string COUNTRY_EN="Chinese";

}
在其他也使用中可以这样:
需要用“中国”判断的时候
if(country=SystemDefine.COUNTRY){

}

第二种办法:
讲代码放在一个文件中例如 pubfunc.cs
然后在具体使用中,用

路径根据具体情况设置。

Apr 28, 2007


Girl Singing In The Wreckage 在残骸上歌唱的女孩

--- by Black Box Recorder



It's my primary instinct to protect the child

我最初的本能 像那个孩子一样

Girl singing in the wreckage

在残骸上歌唱的女孩



My dress is torn, my hair is wild

我的裙子已经撕破,我的头发已经零乱

Girl singing in the wreckage

在残骸上歌唱的女孩



My first car, my early boyfriends

我的第一辆车,我以前的男朋友们

Girl singing in the wreckage

在残骸上歌唱的女孩



Wet weekends, New Year’s Eve parties

潮湿的周末,新年前的聚会

Girl singing in the wreckage

在残骸上歌唱的女孩



Hour after hour, hour after hour

时间一点一点地过



My 18th birthday, i'll die of boredom

我的18岁生日,我将死于厌倦

Girl singing in the wreckagew

在残骸上歌唱的女孩



My private world is smashed right open

我个人私下的世界开始崩溃

Girl singing in the wreckagew

在残骸上歌唱的女孩



My 1st trip, my expectations

我的第一次旅行,我所有的期待

I had a dream that it would end like this

我梦想所有的一切将终止于此

No destiny, no destination

没有命运,没有目的

You hit the ground and then it stops

你走在路上,然后所有的都已终止



Hour after hour, hour after hour

时间一点一点地过



I miss my hometown, it's nothing special

我想念我的家乡,它没什么特别

Call my parents let them know I've arrived

告诉我的父母,我已到了



My primary instinct is to protect the child

我最初的本能,像一个孩子那样



Send the postcard from the airport.

在机场,我寄出一张明信片

Apr 27, 2007

eclipse"Activation.main: 警告"的解决办法

Activation.main: 警告: sun.rmi.activation.execPolicy 系统属性未被指定且 ExecPermissions/ExecOptionPermissions均未被授权。随后的激活尝试失败,原因是对ExecPermission/ExecOptionPermission 的权限检查失败。 有关如何配置 rmid 安全性的文档说明,请参阅:
http://java.sun.com/javase/6/docs/technotes/tools/solaris/rmid.html
http://java.sun.com/javase/6/docs/tooldocs/win32/rmid.html

English Version
The error may coursed by you right click the whole project and chosed "run as". After this, a dialog comes out that "Select java application";the defalt value is "**", but at last the project autoselected Activation-sun.rmi.server. So come out the error.
The solution is directly run the application file , or just restart Eclipse.

报这个错误可能是因为你对最外面的大的项目点右键run as运行为了,所以跳出来一个SELECT JAVA APPLICATION的选框,默认的是**,而最后它用的是第一个选项Activation-sun.rmi.server,因此会报错。
这时在maching types选择运行的项目名即可正常运行,或者点项目中的函数名,再run as如运行hello world,则需对HelloWorld.java下的HelloWorld下的main点右键再选run as。
简单的办法就是,关掉Eclipse重启,这个问题就没有了。

Eclipse 项目版本兼容性问题

Severity and Description Path Resource Location Creation Time IdProject CarsManage is missing required library: 'C:\Developing\Eclipse\eclipse\plugins\org.eclipse.core.runtime_3.1.1.jar' CarsManage Build path 1177604473993 17121
'C:\Developing\Eclipse\eclipse\plugins\org.eclipse.jface_3.1.1.jar' CarsManage Build path 1177604473993 17123

English Version
A quick way to solute the problem is that create a new project with the same type of the old one, and copy all the old files to the new project.

Eclipse的版本不断更新,一方面则体现了Eclipse官方的努力和勤勉,提供给当我们更好,更强大的工具;另一方面,却带来了版本之间兼容性的问题。比如,我们用低版本的Eclipse项目用高版本打开的时候的时候,常常会看到上面提示的这些错误。
这方面的具体机制我没有仔细考究,这个解决方法是什么呢?
按照上面的提示,缺少一些jar文件,那么就应该找到这些jar文件,然后加入库中。但是一般常常会提示缺少十几个或几十个文件,这样的话,确实有点麻烦。
有一个比较方便简洁的解决方法,那就是建立一个和原来项目类型相同的项目,然后,把旧版本的文件全部拷贝到这个新项目中,这样,就可以运行了。

SWT Error
Exception in thread "main" no swt-win32-****

Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3236 in java.library.path at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.loadLibrary0(Unknown Source) at java.lang.System.loadLibrary(Unknown Source) at org.eclipse.swt.internal.Library.loadLibrary(Library.java:123) at org.eclipse.swt.internal.win32.OS.(OS.java:18) at org.eclipse.swt.widgets.Display.(Display.java:125) at com.ford.sai.LoginForm.open(LoginForm.java:44) at com.ford.sai.LoginForm.main(LoginForm.java:34)

English Version
Maybe most of SWT user meets this kind of problem, the console points out directly: no swt-win32-3236 file. This is because Eclipse lack of SWT running local file.
The sulution is simple: click 这里 to download swt-3.2.2-win32-win32-x86.zip.
The downloaded pack swt-3.2.2-win32-win32-x86.zip,extract it,there are five main files
swt.jar, swt-awt-win32-3236.dll,swt-gdip-win32-3236.dll,swt-wgl-win32-3236.dll, swt-win32-3236.dll.
The only thing we need to do is add swt-win32-3236.dll to the project(Just paste it in the root of the project)

这写代码用SWT的同仁们可能大多数遇到了吧。其原因控制台说的很直接了:no swt-win32-3236 。这是由于Eclipse的运行SWT的本地库文件缺少造成的。

解决方法很简单:去Eclipse官方网站,点击这里 下载 swt-3.2.2-win32-win32-x86.zip。
一般来说,下载日本,韩国的站点的速度快一点。本人下载韩国站点的,70k/s左右。

下载后的 swt-3.2.2-win32-win32-x86.zip,解压缩以后有5个主要的文件,
swt.jar,
swt-awt-win32-3236.dll,swt-gdip-win32-3236.dll,swt-wgl-win32-3236.dll,
swt-win32-3236.dll.
我们只需要把swt-win32-3236.dll 加入项目(拷贝到项目根目录中即可)

Apr 26, 2007

java生成随机数

  开门见山,问题:生成(-10,10)之间的保留小数点后两位数的随机数。
  解决方法:1.java中随机数生成函数Random r=new Random(); r.nextFloat();//生成(0,1)之间的浮点型随机数。将上述随机数乘以10,得到生成(0,10)之间的随机数。
  2.生成一个Boolean型的随机数用于控制数的正负:r.nextBoolean();
  3.保留小数位数两位的方法:Math.floor(n*100+0.5)/100;得到的数为double型。
  
  代码如下:
  import java.util.*;
  public class CreateRandom {
   public float numRandom(){
    float num;
    Random r=new Random();
    float value = (float) (Math.floor(r.nextFloat()*1000+0.5)/100);
    Boolean b = r.nextBoolean();
    if(b){
     num = value;
     }
    else{
     num=0-value;
     }
    return num;
    }
    public static void main(String[] args) {
     CreateRandom cr = new CreateRandom();
     float num = cr.numRandom();
     System.out.print(num);
    }
  }

Apr 24, 2007

编程控制标签显示的颜色

老江同志在联合国千年首脑会议上讲话中说,“世界是丰富多彩的……”确实,这个世界上缤纷的颜色,给我们带来了很多的愉悦,想想湛蓝的大海,碧绿的草原,清澈的湖水,火红的晚霞,“呀,呀,呀,呀,我们的大学生活,是多么美好啊”。

有人说,整啥玩意儿?装什么清纯呢?想说什么直说。

其实,在我们编程中,合理的利用颜色,也能够带来一点点的便利。


例如,我们知道,超文本链接,一般情况下,在没有点击之前是蓝色的,点击之后便成了紫色(具体颜色可以在CSS中设置),这很方便我们来区分哪些网页是访问过的,哪些没有。下面的问题是,如何在程序中用代码来控制颜色,给用户带来方便。




在上面的图中(由于工具的问题,显示的不清楚),当用户选择了某个纪录后,记录能够改变颜色,提醒用户该记录已经选择,就可以避免用户重复添加同一条记录的错误。

在DataGrid中,可以这么来实现:

当Label的ID是lblCourseName的时候,

Label mylblCourseName=(Label)mySelectedItem.FindControl("lblCourseName");

…… …… ……
mylblCourseName.ForeColor=Color.Red

当然你也可以指定Color.Blue,Color.Gray,等等。这里使用的是系统提供的颜色。系统提供了数十种颜色,基本上够用了。

也许有人会想,数十种,这哪儿谈得上“丰富多彩”啊。这里微软提供了另一种方法,通过Color结构的构造函数来实现,用的是FromArgb()方法,一般我用的是FromArgb(Int32, Int32, Int32) 的构造函数,三个参数分别表示红色分量值,绿色色分量值,蓝色分量值(0-255)。

例如,Color.FromArgb(123, 0, 123);

mylblCourseName.ForeColor=Color.FromArgb(255, 0,0);

效果是这个样子的:




Apr 23, 2007

外企小白领的英文名

现在很多人尤其是外企的小白领们都喜欢用英文名字,
现选几个英文名中文直译供大家参考

BELINDA---不灵大;LINDA--灵大;BEN---笨;

JACK---接客;FRANK---不拦客;

STEVEN---湿吻; SOPHIA---说谁呀;SUNNY---说你;

JASON---贼孙; GRACE--给累死;BRUCE---不如死;

TONY--拖你;WINNIE---喂你;RAINNIE---累你;HONEY---害你;

HENRY---很累;JERRY---姐累;JEFFREY---姐夫累;MARY---妈累;

JULIA---猪你呀?ANDREW---俺猪;

PAULA---跑啦;CLARA---渴了啦;

VIVIAN---喂喂俺;LILIAN---理理俺;

NIKO---你抠;NICOLE---你抠了;NIKOLAS---你抠死了;

JENNIFER---蛰你否? JENNY---蛰你;ANGELA---挨蛰啦;

LUCY---来塞;TRACY---特来塞;

MAGGIE---马甲 MICHELLE---没歇啊;MICHAEL---没吃啊;

CHERIE/CHERRY---吃力;

David---大胃

Apr 22, 2007

[搞笑]MM睡姿大全(转自IT168)

唯我独尊型





全身放松型

旁若无人型




必须有伴型


四脚朝天型




谁也不理型

小狗吃盒型



作威作福型

甜蜜可人型



遗体告别型

全国搞笑店名(转自IT168)







相当支持 小犬!