ant 的个人资料microant照片日志列表更多 工具 帮助

日志


8月23日

关于updatepanel中注册执行javascript

    好些天都在糊里糊涂,最近也比较懒,居然看到了个留言,永远不更新的博客一等奖,相当尴尬,哈哈。写一些最近自己或别人遇到的小问题吧。
    1、关于updatepanel注册js
      最近在项目里需要用到altas,本人也是新手,老用最简单的updatepanel,在注册脚本时也遇到了困难,无法注册。本来是在updatepanel中放了一个gridview,偶想在girdview中一个模板列点击弹出一个窗体,注册 window.open()来解决问题。本来不是在updatepanel中,所以用 ClientScript.RegisterStartupScript直接注册挺好使。
      在拖入updatepanel后发现无法注册脚本,想想RegisterStartupScript本来是在页面加载时启动js的,在updatepanel中部分刷新,肯定是无法注册的。
    后来发现了ScriptManager.RegisterStartupScript方法,挺好使,呵呵。
     ScriptManager.RegisterClientScriptBlock(UpdatePanelName, typeof(UpdatePanel), "标识key", "脚本", true);
    下面是一个demo,模板列定义如下:


protected void gvClientInfo_RowCommand(object sender, GridViewCommandEventArgs e)
    {
& nbsp;       
//如果是linkButton被点击
        if(e.CommandName.Equals("linkbtnCID"))
        {
            LinkButton lbtn 
= (LinkButton)e.CommandSource;
            GridViewRow dgRow 
= (GridViewRow)lbtn.Parent.Parent;
            
string tmpText = lbtn.Text.ToString();          
            tmpText 
="window.open('customerDetailsInfo.aspx?CID=" + tmpText + "' ,'newwindow','height=550,
                width=700, menubar=no ')
";
            ScriptManager.RegisterStartupScript(
this.UpdatePanel2, this.GetType(), "click", tmpText, true);      
      
        }
    }


    2、关于RegisterStartupScript,RegisterClientScriptBlock 

      RegisterStartupScript 将 js嵌入到页面的底部,</form> 的前面< br />         RegisterClientScriptBlock 将 js嵌入到页面中开启元素 <form> 后面

    3、关于“该行已经属于另一个表”错误
       这个问是出现在不同dataTable之间的行复制出现的问题。
       看这个代码:

 DataTable tmpdt = sodo.getDataTable("text", strSql, sp);             
 dt.Rows.Add(tmpdt.Rows[
0]);
     
       这个明显的错误就是tmpdt的行是一个对象引用,相当于一个指针,错误是难免的,可有以下解决办法:< br />
DataTable tmpdt = sodo.getDataTable("text", strSql, sp);             
1、 dt.Rows.Add(tmpdt.Rows[
0].ItemArray);
2、 dt.ImportRow(tmpdt.Rows[0]);

7月2日

搬家了

    亲爱的兄弟姐妹们,感谢这些时间来对偶blog的支持。
    偶现在在博客园安了一个新家,暂时不再space混了,欢迎来访。
6月29日

传说中微软EPG老大让秘书发给所有员工的邮件[转]


  思考1 : 大局上面仍然有另一个大局

  思考2 : 公平永远有不同角度的公平

  思考3 : 这个游戏只有站在切换器旁边的人可以决定结果
 
  有一群小朋友在外面玩 而那个地方有两条铁轨

  一条还在使用, 一条已经停用

  只有一个小朋友选择在停用的铁轨上玩

  其它的小朋友全都在仍在使用的铁轨上玩

  很不巧,火车来了(而且理所当然的往上面有很多小孩的,仍在使用的铁轨上行驶)

  而你正站在铁轨的切换器旁,因此你能让火车转往停用的铁轨

  这样的话你就可以救了大多数的小朋友; 但是那名在停用铁轨上的小朋友将被牺牲

  你会怎么办?

  据说大多数人会选择救多一些的人,换句话说,牺牲那名在停用铁轨上玩的小孩...

  但是这又引出另一个问题

  那一名选择停用铁轨的小孩显然是做出正确决定

  脱离了他的朋友而选择了安全的地方

  而他的朋友们则是无知或任性的选择在不该玩耍的地方玩

  为什么做出正确抉择的人要为了大多数人的无知而牺牲呢?

  [响应与挑战]

  这篇文章蛮发人深省的,看完了感触很深!

  我们常被教育要顾全大局,但公平吗?

  似乎当大家都做的理所当然的时候,

  我们就必须随波逐流,否则就会被放逐而不容于世,

  如渔父中那位老翁劝屈原所说的:

  世人皆浊,何不淈其泥而扬其波?

  众人皆醉,何不餔其糟而歠其醨?

  何故深思高举,自令放为?

  当一个人太坚持自己是"对"的,

  最后的下场可能就是被牺牲的可怜鬼!

  又有谁会为他掬一把同情之泪? 只会嘲笑他的愚蠢!

  我们已经进了社会,学习的就是圆滑的做人,

  当你是主管, 就像文章中那位切换轨道的人,

  内心的正义与现实冲突时, 你会如何抉择呢?

  不过- 换另一个角度,如不选择切换轨道

  因为,那群小朋友一定知道那是活的轨道

  所以,当他们听到火车的声音时,就会知道要跑!

  但若,将轨道切换后那个乖小孩必定惨死,

  因为,他从来没想过火车还会开到废轨道上

  所以,你认为呢?

   或许这样的想法与理念,

  到了人老时才会发现

  自己成为一个不断被牺牲的可怜鬼,

  但这个社会又为什么要把是与非颠倒来又颠倒去呢?

  另外,再想想,一条铁道会被停止使用,自由它的道理。

  是否代表着这个铁道本身有问题,未经验证就使用它会遇到潜藏的危机呢?

  如果切过去之后,被牺牲的就不只是一个或一群小孩了,

  而是整车的乘客呢?

6月9日

雁儿落带过得胜令

雁儿落带过得胜令


[作者]无名氏

一年老一年,一日没一日,一秋又一秋,一辈催一辈.

一聚一离别,一喜一伤悲。

一榻一身卧,一生一梦里。

寻一夥相识,他一会咱一会,都一般相知,吹一回,唱一回。

曲牌名。《雁儿落》较少单独使用,一般与《得胜令》或《清江引》连成带过曲。《得胜令》可以单独使用,也可与《雁儿落》连成带过曲。《雁儿落》又称为《平沙落雁》,《得胜令》又称为《阵阵赢》、《凯歌曲》。《雁儿落》四句,句式为四个五字句,押四平仄韵。《得胜令》八句,句式为四个五字句,两个二、五句。押七个平仄韵。

曲 谱

  平平仄平平。平平仄平,仄平平
  仄仄平仄仄平仄平平仄,平平仄仄。平仄平平。平,平平仄去

5月29日

五月印象

       松松散散,零零落落,忙忙碌碌,昏昏的五月马上就要过去。说起今年五月的印象很特别,特别的恍惚。
       临海的原因让原本可以提前的春天都滞留在了五月,五月的初期都在赞叹春天的魅力,自然的呼唤让娇嫩的花儿悄悄的开放,继而争奇斗妍。
       五月,飘香的季节,回味回味这个印象……
五月印象之婚宴——
       喜事当头,总要先提起的,呵呵。
       五月好似天天都是好日子,结婚的好日子。
       自己没结过什么婚(说的很谦虚,但的确事实如此哈),不知道结婚什么感觉,但是通过参加的婚宴也至少品出点什么东西来。师姐师兄的婚宴都去串了串,能帮忙的就帮点忙。感觉结婚真不是一件很容易的事,婚前忙活那么多,家里家外,两个人晕头转向的为了那仪式的几个小时。过后呢,该上班上班,该工作工作。
       一个仪式承受了太多的期待,父母、亲人、朋友、领导、同事,在宣称一对有情人的结合。仪式之后就好像更成熟了,师姐师兄对偶的感觉至少是这个样子的。倒突然想起来偶在他入大学的校门就感觉自己已经不是小孩子了一样,类比类比。
       人生就是一场旅途,婚姻可是一个不小的站点。说到旅途,我们都在路上……
五月印象之差旅——
       第一次出差,也就是第一次拿着不是自己的钱出远门。
       记得小时候老爸出差,临走之前总是穿得有模有样的,记忆里老是在我睡眼朦胧里回到家里来,基本上都会带回一些小零食,糖块或什么的,让睡意一扫而光。时间总是过得那么快,转眼间而已。小时的记忆都是老爸手里的皮包,总是迫不及待的去拉开包上的拉链,现在想想,老爸那种疲惫的眼神去越来越深刻。
       这次去的地方不远,却也不近。早早起了床,上来总是兴致勃勃,上车之后的旅程让这种兴致慢慢消磨。上来还和王老师一直在聊,聊他那时的大学,聊现在的大学,感觉到是一代不如一代。慢慢的,两人脸对着脸也不愿说一句话了,呵呵,宁愿去看窗外一成不变的风景。
       到了目的地,匆匆的吃了点饭,没有什么休憩直奔单位,直奔主题。发现在一个陌生的环境里更容易融入到自己的角色。迅速的寻找自己想要的东西,聚焦关键点,一下午下来到没什么感觉。从那个庞然大物里走出来时候,居然下了一点点地小雨,让昏昏沉沉的天空至少有了一点清凉的感觉。看到老师都坐在了大楼前的石阶上才感觉自己的双腿也已经发胀,双脚也有了沉沉的感觉。
       本来晚上想出去走走的,顺便看一下这里的亲戚,无奈中国式接待总是那么好客,总是那么周到。又去直奔下一个主题——吃饭,说是吃饭,也只能说吃饭只是其中的一部分,好在我把它当作了主要部分。不过天南地北倒也学到不少的东西,也锻炼了口才,锻炼了思维,也是不错的学习机会。
       一顿饭吃了四个多小时,饭后就是休息了。非常惭愧自己住了个单间,洗个澡之后开窗看着这个城市的夜景,说实话不是太喜欢,不是我喜欢的特别吵,也不是我喜欢的特别静。都不记得自己是怎么睡着的了,总之,醒来已经是第二天清晨了,赶快踏上了归程。
       当双脚落地的时候,感觉到现在这个小城的环境还是那么好,那么清新。生活又在继续,差旅宣告结束。
       有意思的是记得路过淄博证券交易所,前面不小的广场上塞满了自行车,密密麻麻,看着多赛一只脚都困难。身旁的王老师笑称看到这就知道中国的股市炙手可热,的确热,专业术语叫牛市……
五月印象之牛市——
       晓知牛市熊市之类的词语是在十多年前了,当时中国股市刚刚起步。
       中间不知什么时候看了一部好像叫做《股市人生》的电视剧,从中学到了短线,散户,大户,绩优股等一系列名词,也慢慢了解了什么A股,B股,ST板块什么的名词(注:仅限于名词),但至今也搞不懂什么是什么。
       好像前几年接触到了基金这个名词,后来姐夫去了华夏工作,一直没搞明白基金是什么东西,只知道肯定和钱有关,金融上的东西谁又能搞得明白呢。现在才知道基金可以分很多种类,并且现在最热的基金叫做证券投资基金。
       中国股票基金都在大热,不知道为什么,我也不学经济,大道理明白,具体倒搞不懂,并且理论和现实还拖了节,不知道现在到底是不是有所说的泡沫。
偶被教育着基金是一种理财方式,看基金要看本身的价值,长期投资,长期获利。现实中偶却看到大家都在用一天赚了多少来衡量,现在都在指着股票和基金能帮忙大赚一笔。前些天看杨百万在电视里说他们这种老股民没在这次大潮中赚到多少,中国财经报道中大批基金经理也在那红着眼睛说最怕牛市,一些专家都在呼吁着不要让基金经理短期化,竞争机制不正确,等等等。
偶这些都搞不明白,但是比较现实的就是所有的价值都是通过生产产生的,在中国经济人物中东部沿海的都在搞资本操作(献丑了,请专业人士指正)。钱能生出钱,钱也生不出钱,希望GDP和大便联系不那么密切。也衷心希望股市能一直平稳的牛下去。
赚钱不是我们的梦想,却是我们实现梦想的阶梯。我们今天挤公交车,是因为明天不再想挤公交车……
五月印象之工作日半晌的公交车——
       今天特殊原因,大晌午的就出去帮人整东西,感觉做工程的人真不容易,当然作研发更不容易。
       回来的时候本想着工作日,又不是饭点,公交车不会太挤,结果发现自己想错了。然后自己又想错了,车上大部分不是悠闲的老年人,而是年龄相仿的年轻人。每个人都在拎着自己公司的纸带,或者文件夹,或静静的等待着站点,或忙碌的打着电话。
       自己的年轻时代,都在憧憬着未来,我们有能力不再需要公交车的时候,我们还会不会重新回到公交车上……
五月印象之梁从诫——
       这个名字以前对我很陌生,很偶然的机会昨天看到了阳光卫视的《人生在线》,记住了梁从诫这个名字。
       如果你觉得陌生的话可以加上如下头衔,梁启超之孙,梁思成林徽因之子,名门之后。这样可能让人印象重重,但如果说是一个纯民间组织“自然之友”创办人,你也许不太在意。而我在意的却不是梁先生显赫的家族,这方面你可以搜出梁氏家族种种的光辉历史。但是有一点令人敬佩的是在这个家族里,个人都在做个人的事情,每个人都没有依附在家族的光环下,而是每个人各自的光辉照亮着整个家族。
       纯民间环保组织,梁先生夫妇身体力行,从废纸作的名片,到随身携带的筷子。夫妇强调的是一种环保的理念,不以事小而不为。的确,按梁老的话“如果所有的人都不愿意去做,那就一步也无法迈出,只要有一个人去做,即使是跨出了很小的一步,那也是在前进。国人缺的就是一种精神。”
       不仅是环保的精神,还有梁老对生活的态度,让我重新思考生命的意义到底是什么。梁老夫妇一直在不停的去做明知不太可能的事情,各处在宣扬一种理念,可以说,他们是布道者,精神的布道者,环保的苦行僧。他们在去可可西里曾遭遇车祸,梁老夫人含蓄而又平静的在镜头前说,在中国,你必须防着点什么似的,防着你背后什么似的。大家心里可能都明白,要防着什么,天大的困难,比不上轻描淡写的一句话。
       也许,我们缺的就是这种精神,在这种精神面前汗颜。
       节目的后半段,梁先生方夫人在一起唱一首不知名的歌,肯定很老,但是很动人,可能是他们年轻时的歌吧。没有心情去记歌词,一直沉迷在合唱的声音和眼神里面,我感确定那是一段无悔的青春……
       最后,夫妇在播放CD,是一段哀乐,但是很动听,很抱歉我拙劣的耳朵和学识不知道是哪位大师的作品。梁先生娴熟的陈举着从肖邦到贝多芬的各位大师的哀乐曲目。丰富的学识,流利的英语。并在笑称在他们被别人怀念的时候要播放他们自己选的哀乐。
       淡然而充实的人生,含蓄而又光芒的轨迹,让我一再的去思考,人怎样能活得有意义,有价值,有贡献。
       家事国事天下事,愤青的我总有关心不完的事情,最关心这些的,是胡coresir他们……
五月印象之胡coresir——
       每天都有事情发生,关系到国计民生。
       今天股市疯狂,明天肉蛋大热,李登辉访日,反渎职,六一就要到……
       看到温sir在陕西视察,关心猪肉问题,看望农村留守儿童,在翻阅小孩子的作业时让我感动。本子很破,肯定是突击检查,不是在做秀,这种工作作风让我们折服。确实人民公仆,感谢。
 
五月印象之校门搬迁——
       老校门正在拆除,还记得六年前走进学校是跨过的门,现在正在拆除,心里说不上什么感觉,怀念一下。
 
5月13日

母亲节的记号

    这些天状态一直不太好,前些天有一次还特想回家吃一顿饭,来一顿再普通不过的家常饭,必须是我妈做的。这只是一个愿望罢了,呵呵,感激的话都是假的,只希望自己好好努力,让我妈我爸能获得轻松一些,努力......
    五一也没有抽出时间来歇一会儿,好像老是脱不开身的样子,一直有事一直有事,缠绵不绝的样子。到现在变得很疲倦,每天睡的也不少,总觉得歇不过来,可能就是所谓的身心俱疲吧。前两天还出现了性情的异常现象,变得浮躁,易冲动。感谢我的她及时提出这个问题,并对偶作了循循善诱滴教导和建议,^_^。还记得那天下午打一个市局回来,吃饭的时候不知不觉地在那发牢骚,其实我自己并没有想去斥责什么或者说可以想去说明什么,心里不由自主地在那挑刺,现在想想自己的确在那时是一个很危险的状态,说白了,在牢骚的同时,也证明自己是一个失败者,一个无法及时调解自己的失败者。
    心里一直期待休息,但是琐事总是无法妥当处理,所以就一直无法调节好自己,久而久之,从内而外,感觉比较危险,一定注意一定注意。嘿嘿,所以呐,今天下午一定要去打球,哈哈。发现其实自己调解的手段很单一,这一点不是太好,无非就是打球,睡觉,洗澡,洗衣服之类的。还要开发自己的兴趣。这一点挺佩服偶老板,在我看来他那才叫琐事缠身,但是他在各方面的表现让我汗颜哈,呵呵。感谢板板,教我怎样去做人,怎样去处理事务。
    五一也没出去玩,本来是安排和大学那帮子去一趟城山头去看看阿可的,可惜那天真的是没有条件,看着他们真爽啊,羡慕ing。接着见了一趟鹏哥,也没说两句话就匆匆而过,现在总是这个样子,都在为着各自的生活而奔波着,大家都好运哈。不过感觉怎么都一点没有变呢,除了自个,呵呵,越来越老了,出校也没人觉得出来是个学生了, 哎......
    还好,五一前也凑出去办事的空档逛了逛,见缝插针,呵呵。
    昨天师兄结婚,去凑了凑热闹,感觉人长大的太快,也就一会功夫,这些师兄师姐都差不多成家了。回来的时候和一群一工作的师兄,谈论的都是工作、房子、婚姻等一系列问题,也不大能插上话,苦啊,苦啊,马上要到这道坎了。
    刚刚小弟打来电话,老舅刚打北京回来,又在关心偶滴前途问题。开句玩笑,偶老舅是一个有政治抱负滴人,人民公仆作了一辈子,一直想能让后一代继续着光荣使命,呵呵,可是公务员考试哪是那么好考的啊,希望吧,呵呵。老弟明天集体去青岛,号称实习,希望能一路顺风,吃好玩好休息好。
    刚看了看太阳与马刺的比分,感觉太阳还是比较悬啊,马刺实力更胜一筹感觉。很喜欢两队的打球风格,可是可是,看不着啊,最后总决赛我一定要看,一定......本来能指望火箭走的远一些,可惜输了,不过看过一场比赛,感觉输倒在意料之中,不是很意外。外表看起来火箭比较文明,其实是实力所致,火箭优势明显,劣势同样明显。偶认为姚麦和巴蒂尔在各个位置相当好,但是后卫和大前的位置太弱了,如果要是换成比卢普斯滴话那是相当不错哈,大前,嘿嘿,估计也没有钱再去买了吧。姚去湖人肯定比现在好,毕竟麦迪太软了,科比在这方面要强他不知多少倍,一切皆有可能,呵呵,看看今夏吧。
                 

                                                              (偶也为五一留个爪)
5月5日

T-SQL

*******************Transact_SQL********************

--语 句                                功 能
--数据操作
SELECT      --从数据库表中检索数据行和列
INSERT      --向数据库表添加新数据行
DELETE      --从数据库表中删除数据行
UPDATE      --更新数据库表中的数据
--数据定义
CREATE TABLE    --创建一个数据库表
DROP TABLE     --从数据库中删除表
ALTER TABLE     --修改数据库表结构
CREATE VIEW     --创建一个视图
DROP VIEW     --从数据库中删除视图
CREATE INDEX    --为数据库表创建一个索引
DROP INDEX     --从数据库中删除索引
CREATE PROCEDURE   --创建一个存储过程
DROP PROCEDURE    --从数据库中删除存储过程
CREATE TRIGGER    --创建一个触发器
DROP TRIGGER    --从数据库中删除触发器
CREATE SCHEMA    --向数据库添加一个新模式
DROP SCHEMA     --从数据库中删除一个模式
CREATE DOMAIN    --创建一个数据值域
ALTER DOMAIN    --改变域定义
DROP DOMAIN     --从数据库中删除一个域
--数据控制
GRANT      --授予用户访问权限
DENY      --拒绝用户访问
REVOKE      --解除用户访问权限
--事务控制
COMMIT      --结束当前事务
ROLLBACK     --中止当前事务
SET TRANSACTION    --定义当前事务数据访问特征
--程序化SQL
DECLARE      --为查询设定游标
EXPLAN      --为查询描述数据访问计划
OPEN      --检索查询结果打开一个游标
FETCH      --检索一行查询结果
CLOSE      --关闭游标
PREPARE      --为动态执行准备SQL 语句
EXECUTE      --动态地执行SQL 语句
DESCRIBE     --描述准备好的查询

---局部变量
declare @id char(10)
--set @id = '10010001'
select @id = '10010001'

---全局变量
---必须以@@开头

--IF ELSE
declare @x int @y int @z int
select @x = 1 @y = 2 @z=3
if @x > @y
 print 'x > y' --打印字符串'x > y'
else if @y > @z
 print 'y > z'
else print 'z > y'

--CASE
use pangu
update employee
set e_wage =
 case
  when job_level = ’1’ then e_wage*1.08
  when job_level = ’2’ then e_wage*1.07
  when job_level = ’3’ then e_wage*1.06
  else e_wage*1.05
 end

--WHILE CONTINUE BREAK
declare @x int @y int @c int
select @x = 1 @y=1
while @x < 3
 begin
  print @x --打印变量x 的值
  while @y < 3
   begin
    select @c = 100*@x + @y
    print @c --打印变量c 的值
    select @y = @y + 1
   end
  select @x = @x + 1
  select @y = 1
 end

--WAITFOR
--例 等待1 小时2 分零3 秒后才执行SELECT 语句
waitfor delay ’01:02:03’
select * from employee
--例 等到晚上11 点零8 分后才执行SELECT 语句
waitfor time ’23:08:00’
select * from employee

 

***SELECT***

   select *(列名) from table_name(表名) where column_name operator value
   ex:(宿主)
  select * from stock_information where stockid   = str(nid)
     stockname = 'str_name'
     stockname like '% find this %'
     stockname like '[a-zA-Z]%' --------- ([]指定值的范围)
     stockname like '[^F-M]%'   --------- (^排除指定范围)
     --------- 只能在使用like关键字的where子句中使用通配符)
     or stockpath = 'stock_path'
     or stocknumber < 1000
     and stockindex = 24
     not stocksex = 'man'
     stocknumber between 20 and 100
     stocknumber in(10,20,30)
     order by stockid desc(asc) --------- 排序,desc-降序,asc-升序
     order by 1,2 --------- by列号
     stockname = (select stockname from stock_information  where stockid  = 4)
     --------- 子查询
     --------- 除非能确保内层select只返回一个行的值,
     --------- 否则应在外层where子句中用一个in限定符
  select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复
  select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
  select stockname , "stocknumber" = count(*) from table_name group by stockname
                                      --------- group by 将表按行分组,指定列中有相同的值
          having count(*) = 2  ---------  having选定指定的组
       
  select *
  from table1, table2                 
  where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示
     table1.id =* table2.id -------- 右外部连接

  select stockname from table1
  union [all]  -----  union合并查询结果集,all-保留重复行
  select stockname from table2

***insert***

  insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")
              value (select Stockname , Stocknumber from Stock_table2)---value为select语句

***update***

  update table_name set Stockname = "xxx" [where Stockid = 3]
         Stockname = default
         Stockname = null
         Stocknumber = Stockname + 4

***delete***

  delete from table_name where Stockid = 3
  truncate table_name ----------- 删除表中所有行,仍保持表的完整性
  drop table table_name --------------- 完全删除表

***alter table*** --- 修改数据库表结构

  alter table database.owner.table_name add column_name char(2) null .....
  sp_help table_name ---- 显示表已有特征
  create table table_name (name char(20), age smallint, lname varchar(30))
  insert into table_name select ......... ----- 实现删除列的方法(创建新表)
  alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束
   
***function(/*常用函数*/)***

----统计函数----
AVG    --求平均值
COUNT   --统计数目
MAX    --求最大值
MIN    --求最小值
SUM    --求和

--AVG
use pangu
select avg(e_wage) as dept_avgWage
from employee
group by dept_id

--MAX
--求工资最高的员工姓名
use pangu
select e_name
from employee
where e_wage =
 (select max(e_wage)
  from employee)

--STDEV()
--STDEV()函数返回表达式中所有数据的标准差

--STDEVP()
--STDEVP()函数返回总体标准差

--VAR()
--VAR()函数返回表达式中所有值的统计变异数

--VARP()
--VARP()函数返回总体变异数

----算术函数----

/***三角函数***/
SIN(float_expression) --返回以弧度表示的角的正弦
COS(float_expression) --返回以弧度表示的角的余弦
TAN(float_expression) --返回以弧度表示的角的正切
COT(float_expression) --返回以弧度表示的角的余切
/***反三角函数***/
ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角
ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角
ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角
ATAN2(float_expression1,float_expression2)
        --返回正切是float_expression1 /float_expres-sion2的以弧度表示的角
DEGREES(numeric_expression)
                       --把弧度转换为角度返回与表达式相同的数据类型可为
        --INTEGER/MONEY/REAL/FLOAT 类型
RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为
        --INTEGER/MONEY/REAL/FLOAT 类型
EXP(float_expression)  --返回表达式的指数值
LOG(float_expression)  --返回表达式的自然对数值
LOG10(float_expression)--返回表达式的以10 为底的对数值
SQRT(float_expression) --返回表达式的平方根
/***取近似值函数***/
CEILING(numeric_expression)  --返回>=表达式的最小整数返回的数据类型与表达式相同可为
        --INTEGER/MONEY/REAL/FLOAT 类型
FLOOR(numeric_expression)    --返回<=表达式的最小整数返回的数据类型与表达式相同可为
        --INTEGER/MONEY/REAL/FLOAT 类型
ROUND(numeric_expression)    --返回以integer_expression 为精度的四舍五入值返回的数据
        --类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型
ABS(numeric_expression)      --返回表达式的绝对值返回的数据类型与表达式相同可为
        --INTEGER/MONEY/REAL/FLOAT 类型
SIGN(numeric_expression)     --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型
        --与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型
PI()       --返回值为π 即3.1415926535897936
RAND([integer_expression])   --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数


----字符串函数----
ASCII()         --函数返回字符表达式最左端字符的ASCII 码值
CHAR()   --函数用于将ASCII 码转换为字符
    --如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值
LOWER()   --函数把字符串全部转换为小写
UPPER()   --函数把字符串全部转换为大写
STR()   --函数把数值型数据转换为字符型数据
LTRIM()   --函数把字符串头部的空格去掉
RTRIM()   --函数把字符串尾部的空格去掉
LEFT(),RIGHT(),SUBSTRING()  --函数返回部分字符串
CHARINDEX(),PATINDEX()  --函数返回字符串中某个指定的子串出现的开始位置
SOUNDEX()  --函数返回一个四位字符码
    --SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值    
DIFFERENCE()    --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异
    --0 两个SOUNDEX 函数返回值的第一个字符不同
    --1 两个SOUNDEX 函数返回值的第一个字符相同
    --2 两个SOUNDEX 函数返回值的第一二个字符相同
    --3 两个SOUNDEX 函数返回值的第一二三个字符相同
    --4 两个SOUNDEX 函数返回值完全相同
                                      

QUOTENAME()  --函数返回被特定字符括起来的字符串
/*select quotename('abc', '{') quotename('abc')
运行结果如下
----------------------------------{
{abc} [abc]*/

REPLICATE()     --函数返回一个重复character_expression 指定次数的字符串
/*select replicate('abc', 3) replicate( 'abc', -2)
运行结果如下
----------- -----------
abcabcabc NULL*/

REVERSE()       --函数将指定的字符串的字符排列顺序颠倒
REPLACE()       --函数返回被替换了指定子串的字符串
/*select replace('abc123g', '123', 'def')
运行结果如下
----------- -----------
abcdefg*/

SPACE()   --函数返回一个有指定长度的空白字符串
STUFF()   --函数用另一子串替换字符串指定位置长度的子串


----数据类型转换函数----
CAST() 函数语法如下
CAST() (<expression> AS <data_ type>[ length ])
CONVERT() 函数语法如下
CONVERT() (<data_ type>[ length ], <expression> [, style])

select cast(100+99 as char) convert(varchar(12), getdate())
运行结果如下
------------------------------ ------------
199   Jan 15 2000

----日期函数----
DAY()   --函数返回date_expression 中的日期值
MONTH()   --函数返回date_expression 中的月份值
YEAR()   --函数返回date_expression 中的年份值
DATEADD(<datepart> ,<number> ,<date>)
    --函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期
DATEDIFF(<datepart> ,<number> ,<date>)
    --函数返回两个指定日期在datepart 方面的不同之处
DATENAME(<datepart> , <date>)  --函数以字符串的形式返回日期的指定部分
DATEPART(<datepart> , <date>)  --函数以整数值的形式返回日期的指定部分
GETDATE()  --函数以DATETIME 的缺省格式返回系统当前的日期和时间

----系统函数----
APP_NAME()      --函数返回当前执行的应用程序的名称
COALESCE()  --函数返回众多表达式中第一个非NULL 表达式的值
COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值
COL_NAME(<table_id>, <column_id>)   --函数返回表中指定字段的名称即列名
DATALENGTH() --函数返回数据表达式的数据的实际长度
DB_ID(['database_name']) --函数返回数据库的编号
DB_NAME(database_id)  --函数返回数据库的名称
HOST_ID()     --函数返回服务器端计算机的名称
HOST_NAME()     --函数返回服务器端计算机的名称
IDENTITY(<data_type>[, seed increment]) [AS column_name])
 --IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中
/*select identity(int, 1, 1) as column_name
 into newtable
 from oldtable*/
ISDATE()  --函数判断所给定的表达式是否为合理日期
ISNULL(<check_expression>, <replacement_value>) --函数将表达式中的NULL 值用指定值替换
ISNUMERIC()  --函数判断所给定的表达式是否为合理的数值
NEWID()   --函数返回一个UNIQUEIDENTIFIER 类型的数值
NULLIF(<expression1>, <expression2>)
 --NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值

4月21日

在云端

    本来天挺不错,结果就在我换衣服去打球的那个刹那,风就莫名其妙的起来了。
    在球场上已经看不到后面的山了,一切都包裹在看似淡淡的,却是能遮颜一切的雾气里面。
    打了一会,结果接到老师电话,本以为是通知明天开题的事情,木有想到电话那头问我在哪。心里一惊,结果不出所料,一会要开题,速速赶回。没顾那么多,直奔目的地。先去了趟实验室,好久没去了,进去一师姐居然冲我来了句“下雨了?!”,一脸狐疑,无语......
    还不错,老板居然也是一身运动装扮,见我第一句就问我穿得那么休闲,嘿嘿,与领导保持一致呗。还好,挺顺利,只是报告里居然落了一个词。最后争论了一会题目怎么定,就这么过去了,呵呵,轻松简单哈。不过偶心里知道自己的题目有难度啊,希望能做出来。
    明天说啥也得瞅一眼季后赛,哈哈,拼了。
    洗完澡那叫一个舒服,天气变得可爱无比。有点烟雨朦胧的感觉,却感觉要比那种感觉来的要柔,要细,要温暖。漂在脸上那种凉凉的却又温暖的感觉,居然在春天颇有凉意的夜里感觉到清爽,当你伸出收取摸的时候却有什么都摸不到,若即若离,若有若无......明明是雨,却有种清风抚过的错觉。突然想到,在云端是不是就是这种感觉呢,自己又是不是在云端呢?

PlayOffs come again

        不知不觉又是一年的春暖花开,看到窗外懒洋洋的日光和充满生机的一切有生命的东西心底就有一种莫名的向上的力量。
        一直都在努力,一直都没停顿,有时候就觉得人生像一片无穷无尽的荒漠,由不得你,你要一直走下去,只有走下去才有你需要的补给和你渴望的成功。在此怀念一位已离我们远去的女孩,平时没有太多交往,但是以前一眼就记住了她,或者说记住了她背上的格瓦拉。我想她也一定想格瓦拉那样坚强,但是车祸的面前人总是显得那么脆弱。希望她的家人能走出悲伤,愿她能走好。相信在很多人的心里都不会忘记不远处那个象精灵一样跳动的格瓦拉......
                                     
        生命既然如此脆弱,就我们拥有一颗坚强的心吧。有不由得想起这两天发生VTU的枪击案,当面临灾难的时候,生命又怎能承受如此之重。我们的命还有有的选,我们的未来掌握在自己手里......
 
--------------------------------------------------------------------------------------------------------------------
 
         一年一度的季后赛提醒着人们光阴如梭,时间易逝。不知道火箭能走多远,但是已经非常感谢姚明了,偶非姚蜜姚黑,五年前,Yao进入NBA,那时候我还上大二,可以说他的成长伴随着我的成长,一个从毛胚的定型过程,都在努力,都在进步。
       
       
4月15日

textcopy:数据库读写任意类型文件

   前几天要把flash文件写入数据库并读取,上来想尝试以二进制流的方式,偶然发现textcopy,何乐而不为呢。
   介绍一下,字段肯定是image类型,不多说了。
   1、首先建立textcopy存储过程,如下:
      CREATE   PROCEDURE   sp_textcopy   (    
      @srvname         varchar   (30),    
      @login             varchar   (30),    
      @password         varchar   (30),    
      @dbname             varchar   (30),    
      @tbname             varchar   (30),    
      @colname         varchar   (30),    
      @filename         varchar   (30),    
      @whereclause   varchar   (40),    
      @direction     char(1))    
  AS    
  DECLARE   @exec_str   varchar   (255)    
  SELECT   @exec_str   =    
                  'textcopy   /S   '   +   @srvname   +    
                  '   /U   '   +   @login   +    
                  '   /P   '   +   @password   +    
                  '   /D   '   +   @dbname   +    
                  '   /T   '   +   @tbname   +    
                  '   /C   '   +   @colname   +    
                  '   /W   "'   +   @whereclause   +    
                  '"   /F   '   +   @filename   +    
                  '   /'   +   @direction    
  EXEC   master..xp_cmdshell   @exec_str 
2、建好之后即可使用了,使用方法如下:
读入文件:
sp_textcopy  '数据库服务器', '用户名','密码','数据库名', '表名','文件字段名','源文件名(包含路径)','where 查询条件','I'
读出文件到指定文件名:
sp_textcopy  '数据库服务器', '用户名','密码','数据库名', '表名','文件字段名','目的文件名(包含路径)','where 查询条件','O'
3、拷贝你的MS SQL server安装路径下的textcopy.exe到C盘binn下
例如:D:\Program Files\Microsoft SQL Server\MSSQL\Binn下拷贝textcopy.exe
到目录C:\Program Files\Microsoft SQL Server\80\Tools\Binn
当然,读写仅限于本地路径。我需要用到远程读写,BS下实现的确容易,但是CS下只能另辟蹊径了,呵呵。偶为了加快进度,采了混合模式,哈哈,就不多说了。不过个人认为做成sourcesafe那样才是正解,局域网内好做点,广域下可使用webservice实现。
4月1日

烟花三月, 梦无扬州

    看到一哥们的窝在惊叹春天,好像觉得不过瘾,洋洋洒洒整了大半篇幅朱自清的《春》。早不记得是么时候学过这篇美得让人无法自拔的文字,也很难以想象在吹面不寒杨柳风这些句子的由来。此时我却突然醒悟,春天到了,悄无声息.......
    海滨小城的初春不只是太过隐蔽,还是自己越来越缺少发现的眼睛。想到春,总忘不掉最简单的“烟花三月”,言仅数字,越让人遐想联翩,淡淡的雾气,濛濛的细雨,一切都在悄无声息的散发着新生的活力,甚至听得到花开的声音,感觉到新芽舒展的惬意。收回柔顺如丝的思绪,张开朦胧的双眼,抛开那些梦中江南的画卷,寻找身边的春天。这里的一切确实隐蔽,但是我的确发现了寒意略存中撑开的迎春花,突兀枝干中抽出的新芽。海风让这里的的一切变得坚强,不知道外表还依然稚嫩的自己也是否能够透漏出这里的春的英气。
    (任务实在繁忙,心里确实痒痒,略略摆弄笔墨,不知能否待续......)
3月27日

为人民公仆服务

    题目小小调侃一下,没有别的意思,^_^.
    说一下最近的一个小项目......
 
    扫兴,没意思
3月11日

[转]C#中TreeView组件使用方法初步

[转]C#中TreeView组件使用方法初步

TreeView组件是由多个类来定义的,TreeView组件是由命名空间"System.Windows.Forms"中的"TreeView"类来定义的,而其中的节点(即Node),是由命名空间"System.Windows.Forms"中的"TreeNode"来定义的。所以当在程序中创建一个TreeView对象,其实只是创建了一个可以放置节点的"容器"。而在这个容器中加入一个节点,其实就是加入了从"TreeNode"类中创建的一个节点对象;同样删除一个节点,也就是删除一个"TreeNode"节点对象。

  一. 本文中介绍的程序设计及运行环境

   (1).微软视窗2000 服务器版

   (2)..Net Framework SDK 正式版

  二. C#操作TreeView组件中的一些常用方法以及具体实现:

  TreeView组件虽然是一个操作起来比较麻烦的组件,但归根到底,可以总结为三种基本操作:加入子节点、加入兄弟节点和删除节点。掌握了这三种常用操作,对于在编程中灵活运用TreeView组件是十分必要的。下面就分别来加以介绍。

  (1).加入子节点:

  所谓子节点,就是处于选定节点的下一级节点。加入子节点的具体过程是:首先要在TreeView组件中定位要加入的子节点的位置,然后创建一个节点对象,然后利用TreeVeiw类中对节点的加入方法(即:Add ( )方法),加入此节点对象。下面就是在treeView1组件中加入一个子节点的具体代码:

//首先判断是否选定组件中的位置
if ( treeView1.SelectedNode == null )
{
MessageBox.Show ( "请选择一个节点" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;
}
else
{
//创建一个节点对象,并初始化
TreeNode tmp ;
tmp = new TreeNode ( "节点名称" ) ;
//在TreeView组件中加入子节点
treeView1.SelectedNode.Nodes.Add ( tmp ) ;
treeView1.SelectedNode = tmp ;
treeView1.ExpandAll ( ) ;
}

  (2).加入兄弟节点:

  所谓兄弟节点,就是在选定的节点的平级的节点。加入兄弟节点的方法和加入子节点的方法基本一致,只是在最后的实现方法上有着略微的区别。加入兄弟节点的具体步骤,首先也是要确定要加入的兄弟节点所处的位置,接着定义一个节点对象,最后调用TreeView类中对兄弟节点加入的方法,加入此节点对象。加入兄弟节点和加入子节点的最大区别就在于这最后一步。希望读者能够注意。下面是在TreeView组件加入一个兄弟节点的具体代码:

//首先判断是否选定组件中节点的位置
if ( treeView1.SelectedNode == null )
{
MessageBox.Show ( "请选择一个节点" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;
}
else
{
//创建一个节点对象,并初始化
TreeNode tmp ;
tmp = new TreeNode ( textBox1.Text ) ;
//在TreeView组件中加入兄弟节点
treeView1.SelectedNode.Parent.Nodes.Add ( tmp ) ;
treeView1.ExpandAll ( ) ;
}

  (3).删除节点:

  删除节点就是删除TreeView组件中选定的节点,删除节点可以是子节点,也可以是兄弟节点,但无论节点的性质如何,必须保证要删除的节点没有下一级节点,否则必须先删除此节点中的所有下一级节点,然后再删除此节点。删除节点比起上面的二个操作要显得略微简单,具体方法是:首先判断要删除的节点是否存在下一级节点,如果不存在,就调用TreeView类中的Remove ( )方法,就可以删除节点了。下面是删除TreeView组件中节点的具体代码:

//判断选定的节点是否存在下一级节点
if ( treeView1.SelectedNode.Nodes.Count == 0 )
//删除节点
treeView1.SelectedNode.Remove ( ) ;
else
MessageBox.Show ( "请先删除此节点中的子节点!" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;

  (4).TreeView组件的一些其他常用操作:

  其他的一些常用操作比起上面的三种操作,在具体实现上要显得简单许多。这些常用操作无非是,展开所有节点,展开指定的节点、和折叠所有节点。下面就来具体介绍一下:

  < I > .展开所有节点:

  要展开TreeView组件中的所有节点,首先就要把选定的节点指针定位在TreeView组件的根节点上,然后调用选定组件的ExpandAll方法就可以了,下面是具体代码:

//定位根节点
treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;
//展开组件中的所有节点
treeView1.SelectedNode.ExpandAll ( ) ;

  < II > .展开选定节点的下一级节点:

  由于只是展开下一级节点,所以就没有必要用ExpandAll ( )方法了。展开下一级节点只需要调用Expand ( )方法就可以了,下面是具体的实现代码:

treeView1.SelectedNode.Expand ( ) ;

  < III > .折叠所有节点:

  折叠所有节点和展开所有节点是一组互操作,具体实现的思路也大致相同,折叠所有节点也是首先要把选定的节点指针定位在根节点上,然后调用选定组件的Collapse ( )就可以了,下面是具体的实现代码:

//定位根节点
treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;
//折叠组件中所有节点
treeView1.SelectedNode.Collapse ( ) ;

  至此已经把在C#操作TreeView组件的常用方法和一般方法基本都介绍完了。
三. C#编写的一个完整操作TreeView组件的例子:

  下面是C#编写一个的关于TreeView组件的例子,在这个例子中,结合以上介绍的常用方法和一般方法,基本覆盖来TreeView组件的一些最常用的操作。譬如可以灵活的程序中的TreeView组件中,进行加入子节点、兄弟节点、删除节点、折叠、展开等操作。其中前三种基本操作是通过程序中弹出菜单中的功能来实现的,后面操作是通过程序中的按钮来实现的。下面是此程序的代码节略(TreeView.cs):

using System ;
using System.Drawing ;
using System.Collections ;
using System.ComponentModel ;
using System.Windows.Forms ;
using System.Data ;
namespace 全面掌握TreeView组件的使用方法
{
/// Form1 的摘要说明。
public class Form1 : Form
{
private TreeView treeView1 ;
private Button button1 ;
private Button button2 ;
private Button button3 ;
private MenuItem menuItem2 ;
private MenuItem menuItem3 ;
private MenuItem menuItem4 ;
private ContextMenu contextMenu1 ;
private TextBox textBox1 ;
private Label label1 ;
/// 必需的设计器变量。
private System.ComponentModel.Container components = null ;
public Form1 ( )
{
//初始化窗体中的组件
InitializeComponent ( ) ;
}
/// 清理所有正在使用的资源。
protected override void Dispose ( bool disposing )
{
if ( disposing )
{
if ( components != null )
{
components.Dispose ( ) ;
}
}
base.Dispose ( disposing ) ;
}
private void InitializeComponent ( )
{
  //初始化代码(略)
}
[ STAThread ]
static void Main ( )
{
Application.Run ( new Form1 ( ) ) ;
}
private void AddChildNode ( )
{
//首先判断是否选定组件中的位置
if ( treeView1.SelectedNode == null )
{
MessageBox.Show ( "请选择一个节点" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;
}
else
{
if ( textBox1.Text != "" )
{
//创建一个节点对象,并初始化
TreeNode tmp ;
tmp = new TreeNode ( textBox1.Text ) ;
//在TreeView组件中加入子节点
treeView1.SelectedNode.Nodes.Add ( tmp ) ;
treeView1.SelectedNode = tmp ;
treeView1.ExpandAll ( ) ;
}
else
{
MessageBox.Show ( "TextBox组件必须填入节点名称!" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;
return ;
}
}
}
private void AddParent ( )
{
//首先判断是否选定组件中节点的位置
if ( treeView1.SelectedNode == null )
{
MessageBox.Show ( "请选择一个节点" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;
}
else
{
if ( textBox1.Text != "" )
{
//创建一个节点对象,并初始化
TreeNode tmp ;
tmp = new TreeNode ( textBox1.Text ) ;
//在TreeView组件中加入兄弟节点
treeView1.SelectedNode.Parent.Nodes.Add ( tmp ) ;
treeView1.ExpandAll ( ) ;
}
else
{
MessageBox.Show ( "TextBox组件必须填入节点名称!" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;
return ;
}
}
TreeNode tnode = new TreeNode ( textBox1.Text ) ;
}
private void treeView1_MouseDown ( object sender , MouseEventArgs e )
{
if ( e.Button == MouseButtons.Right )
contextMenu1.Show ( this , new Point ( e.X , e.Y ) ) ;
}
private void button1_Click ( object sender , System.EventArgs e )
{
treeView1.SelectedNode.Expand ( ) ;
}
private void menuItem2_Click ( object sender , System.EventArgs e )
{
AddChildNode ( ) ;
}
private void menuItem3_Click ( object sender , System.EventArgs e )
{
AddParent ( ) ;
}
private void menuItem4_Click ( object sender , System.EventArgs e )
{
//判断选定的节点是否存在下一级节点
if ( treeView1.SelectedNode.Nodes.Count == 0 )
//删除节点
treeView1.SelectedNode.Remove ( ) ;
else
MessageBox.Show ( "请先删除此节点中的子节点!" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;
}
private void button2_Click ( object sender , System.EventArgs e )
{
//定位根节点
treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;
//展开组件中的所有节点
treeView1.SelectedNode.ExpandAll ( ) ;
}
private void button3_Click ( object sender , System.EventArgs e )
{
//定位根节点
treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;
//折叠组件中所有节点
treeView1.SelectedNode.Collapse ( ) ;
}
}
}


  在成功编译TreeView.cs后,运行的程序界面如下:


图01:C#编写的操作TreeView组件的程序运行界面

  四. 总结:

  TreeView组件是一个既令程序员头痛,又令程序员难以割舍的组件。这是因为TreeView组件使用非常灵活,显示内容有层次,并且"容量"相对又比较大。但同时在实际的编程比起其他组件又相对麻烦。掌握了本文介绍的这些用C#操作TreeView组件的基本方法后,我想对于在使用TreeView组件中的一般的问题,应该都能够克服了吧。
2月6日

dll文件访问被拒绝

这个问题是在用 win2003 后碰到的,在2003系统下,用vs.net 开发 运行项目的时候经常碰到
"组件 访问被拒绝 --“/”应用程序中的服务器错.."
以前重新启动 IIS , 注销系统都没有,一定要重新启动电脑,一直没找到答案,今天总算解决了
解决方法:
解决方法一:

1.开始 -- 管理工具 -- 计算机管理(Win2003的位置,其他操作系统类似)打开计算机管理
--展开计算机管理左边树中“服务和应用程序”节点,再在其下展开“索引服务”节点,停止服务,最好最快的方法

解决方法二:

2.1、开始 -- 管理工具 -- 计算机管理(Win2003的位置,其他操作系统类似)打开计算机管理
2.2、展开计算机管理左边树中“服务和应用程序”节点,再在其下展开“索引服务”节点,再在其下展开“System”节点,再在其下展开“目录”节点。
2.3、在计算机管理的右边我们可以看到配置的索引服务目录。
2.4、在“目录”节点上右击鼠标,选择“新建”--“目录”
2.5、在“添加目录”对话框中,路经输入框中输入 ASP.net 的临时文件目录。默认应该是:
c:\<WINDIR>\Microsoft.NET\Framework\<Version Number>\Temporary ASP.NET Files  目录。
<Version Number> 指你要处理的.net版本。
2.6、在“包含在索引中吗?”选项中,选择“否”
2.7、单击“确定”按钮
2.8、在“索引服务”节点上右键单击,重起索引服务即可。

解决方法三:
   1. 可以删除 bin\XX.pdb

1月26日

有家不能回

    在自己的脑海里家的概念越来越淡,却又越来越浓。
    淡的是很难说我现在是个什么数量级的单位,家到底在哪里,在宿舍里也算是家,到爸妈身旁也算是家,但好像却失去了一个真正意义的家。首先,宿舍是个休息的地方,不是个人空间,却要在里面住上一年中的多半时间。父母身旁一切都还是那样自由,还能那样懒散,但是住的却越来越少。浓的是自己越来越想能有一个自己维持的家,具体不便偷漏,
    可怜的是学校很残酷滴把我藏身之地,偶的猪窝一样的宿舍也给剥夺了。本来是该回家的,结果今年的转换出了点差错,暂时回不去了。还好还好,路路那觅得一藏身之地,也算是不幸中的万幸了。
    偌大的学校没了人,突然就变得死寂死寂的,没有了一点生气。让人感觉以前很熟悉的地方也感到十分陌生,为解决吃方问题也不得不到处去跟打猎似的,到了点就出去看看哪有吃的。感觉吃饭成了一天最艰巨的任务,中午吃过饭回来看到一只在觅食的小黑猫,我看它的时候小家伙就眼巴巴地望着我。机械的在坐兜里掏出了一包纸巾,右兜里掏出了一串钥匙,没有点可以喂这小家伙的东西,没有办法。真难以想象它是准备怎么样熬过这个冬天的。
    PS:在老板办公室就是这么滴不自由,刚才只好装了装样子,现在继续。说到这,老板今天一天没过来,估计到四点来钟再过来,真被他的时间钟搞败了,打早上7点到晚上11点都要时刻准备着,非常之写意。8过,哈哈,还好每次过来都打个招呼,谁叫俺拿着钥匙,掌管着开门大权涅。
    今天不露面肯定和今天早上的大雪是密不可分滴,今个腊八,在别人msn上签名看到滴,真伪性没法证实,估计99%以上的正确率。腊八迎来了2007年的第一场雪,虽然来得晚些,来势倒是挺猛。今个早晨醒来就一只懒被窝里不想出来,主要是被窝外面和里面的温度差距,初步保守估计也就是二十七八度。最要命的是那个风,此处引用一句让我咬牙切齿的签名“腊八的风就应该这么刮”,这位师兄工作住宿不用出楼,看着窗外雪停着风唱歌倒也无可厚非。不过这可害惨了我,顶着海风,脸上砸着雪花,倒也自在。看着白茫茫的沙滩,衬着冲向沙滩的那一堆堆雪似的浪花,真正体会到啥叫“卷起千堆雪”。
    风的确够大,耳边就是呼呼的响。毛主席教导我们:与天斗、与地斗、与人斗,其乐无穷!偶感觉他老人家教导的对偶来说是不太适用了,偶感觉与啥斗也别与天斗啊,整不了,整不了。当时我就突然想起F1来,偶没体验过F1,哪怕是时速超过100的时候也没体验过,不过今个早上倒真是一点不比超过300的f1的体验差到哪去,暂且就当半小时的车程吧(当然是F1赛车啦,)。
    时间不短了,该歇歇笔了,诸位看官且看下回分解吧。
1月14日

谈谈现在,一个四不象的年纪

    一直在走,一直在变,一直在不停的做事,一直在不停的打算;
   
1月5日

06大盘点

06年过去好些天了,媒体都在抓紧时间搞着06这个十大那个百大的。偶看着心里也样啊,自己干脆自己盘点一下06年自己都干了啥。

06年第一场雪的时候,还是视野比较窄地时候(当然,现在也基本很窄,只是相对)。当时也是一番热血,可惜奏是年轻啊,发力不太正确,学习也不是太得当,现在想想那也是一个打基础的时候吧。现在基础也不是很牢靠,正好借放假补补。感触最深的事-那年的雪真是大,今年基本上没下什么雪,感觉还不到冬天似的,其实过年都快了。

06年春节的时候,那时候还是比较好玩,不可取,不可取。

06年上半年一直都在做天文台的事,后来研究来研究去发现不太适合,比较逊,但也算是一大收获吧,至少知道了自己不适合做什么。

06年五一记忆还是比较深刻,回了趟家。很希望所有朋友们的父母都能健康长寿,有一个好的晚年。五一失去了见老杨的机会,见了大超一面,小伙不知现在混得咋样。

06年的接下来就偶遇了偶滴她,想想快半年了,竟和昨天一样。前几天看06体育赛事的盘点,看到意大利夺冠的时候让我久不释怀,感慨万千。精彩的比赛,7月十号的那个不眠夜......

06年8月,去了趟烟台,见到了鹏哥,班头,意义比较重大,恩,恩,就不多说了。

06年9月,从lamost中摆脱出来,打了一下基础,做了点别的,比较有意思。

接下来,又做了点现在做的东西,思路有些转变,还是相当有意思,更发现学海无涯,永无止境。

这期间,不仅专业层面,个人思想开始转变,可能成熟了点了吧。有时候感到有点老了,三十而立,都奔三了快,也该担负起更大的责任了。

一路在走,一路在变,我们都是时间的旅者,你看到的让你感悟,你感悟到的让你改变,你的改变决定了你的感悟,你的感悟让你看到更多。时间和空间在我看来没有太大区别,他们都是构成我们生命的一个维度,空间的维度你可以随时改变,只是时间的这个维度你却无法改变;只有不停的感悟,才能看到的更多,看得更远。

06已过,这就到了偶的本命年,转了两圈了。都说属猪的在06年比较糊涂,平时表象也是纯一小糊涂蛋(偶们高中地理老师评价偶们智商滴最爱),感谢偶万能滴神,居然赐给偶这么多滴礼物。

时不我待,新年偶可要好好努力,猪步天下......

1月4日

SQL Server不能启动的故障-[发生错误 1069 由于登陆失败而无法启动服务(转)

 

--是否修改了操作系统密码?

--修改操作系统密码,导致SQL不能启动的解决办法:

1.我的电脑--控制面板--管理工具--服务--右键MSSQLSERVER--属性--登陆--登陆身份--选择"本地系统帐户"

或:

2.我的电脑--控制面板--管理工具--服务--右键MSSQLSERVER--属性--登陆--登陆身份--选择"此帐户"--密码和确认密码中输入你修改后的administrator密码.

两者的区别:

选择第一种方式,以后修改了administrator密码,不用再调整(但要求登陆操作系统的是系统管理员)

选择第二种方式,以后修改了administrator密码,还要再重复做上面的操作.

第一个错误"SQL Server 不存在或访问被拒绝"通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多。一般说来,有以下几种可能性:

  1、SQL Server名称或IP地址拼写有误;

  2、服务器端网络配置有误;

  3、客户端网络配置有误。

  要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因。

  首先,检查网络物理连接:

   ping <服务器IP地址>    或者

   ping <服务器名称>

  如果 ping <服务器IP地址> 失败,说明物理连接有问题,这时候要检查硬件设备,如网卡、HUB、路由器等。还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如 ISA Server。防火墙软件可能会屏蔽对 ping、telnet 等的响应,因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口。

  如果ping <服务器IP地址> 成功而 ping <服务器名称> 失败,则说明名字解析有问题,这时候要检查 DNS 服务是否正常。有时候客户端和服务器不在同一个局域网里面,这时候很可能无法直接使用服务器名称来标识该服务器,这时候我们可以使用HOSTS文件来进行名字解析,具体的方法是:

  1、使用记事本打开HOSTS文件(一般情况下位于C:\WINNT\system32\drivers\etc).

  2、添加一条IP地址与服务器名称的对应记录,如:

    172.168.10.24 myserver

  也可以在 SQL Server 的客户端网络实用工具里面进行配置,后面会有详细说明。

  其次,使用 telnet 命令检查SQL Server服务器工作状态:

   telnet <服务器IP地址> 1433

  如果命令执行成功,可以看到屏幕一闪之后光标在左上角不停闪动,这说明 SQL Server 服务器工作正常,并且正在监听1433端口的 TCP/IP 连接;如果命令返回"无法打开连接"的错误信息,则说明服务器端没有启动 SQL Server 服务,也可能服务器端没启用 TCP/IP 协议,或者服务器端没有在 SQL Server 默认的端口1433上监听。

  接着,我们要到服务器上检查服务器端的网络配置,检查是否启用了命名管道,是否启用了 TCP/IP 协议等等。我们可以利用 SQL Server 自带的服务器网络使用工具来进行检查。

  点击:程序 -> Microsoft SQL Server -> 服务器网络使用工具,打开该工具后看到的画面如下图所示:

  从这里我们可以看到服务器启用了哪些协议。一般而言,我们启用命名管道以及 TCP/IP 协议。

  点中 TCP/IP 协议,选择"属性",我们可以来检查 SQK Server 服务默认端口的设置,如下图所示:

  一般而言,我们使用 SQL Server 默认的1433端口。如果选中"隐藏服务器",则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接。

  检查完了服务器端的网络配置,接下来我们要到客户端检查客户端的网络配置。我们同样可以利用 SQL Server 自带的客户端网络使用工具来进行检查,所不同的是这次是在客户端来运行这个工具。

  点击:程序 -> Microsoft SQL Server -> 客户端网络使用工具, 打开该工具后看到的画面如下图所示:

  从这里我们可以看到客户端启用了哪些协议。一般而言,我们同样需要启用命名管道以及 TCP/IP 协议。

  点击 TCP/IP 协议,选择"属性",可以检查客户端默认连接端口的设置,如下图所示。

  该端口必须与服务器一致。

  单击"别名"选项卡,还可以为服务器配置别名。服务器的别名是用来连接的名称,连接参数中的服务器是真正的服务器名称,两者可以相同或不同。如下图中,我们可以使用myserver来代替真正的服务器名称sql2kcn-02,并且使用网络库 Named Pipes。别名的设置与使用HOSTS文件有相似之处。

  通过以上几个方面的检查,错误 1 发生的原因基本上可以被排除。下面我们再详细描述如何来解决错误 2。

  当用户尝试在查询分析器里面使用sa来连接SQL Server,或者在企业管理器里面使用sa来新建一个SQL Server注册时,经常会遇到如图 2 所示的错误信息。该错误产生的原因是由于SQL Server使用了"仅 Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(如 sa )进行连接。解决方法如下所示:

  1、 在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server;

  2、 展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡;

  3、 在"身份验证"下,选择"SQL Server和 Windows "。

  4、 重新启动SQL Server服务。

  在以上解决方法中,如果在第 1 步中使用"使用 Windows 身份验证"连接 SQL Server 失败,那么我们将遇到一个两难的境地:首先,服务器只允许了 Windows 的身份验证;其次,即使使用了 Windows 身份验证仍然无法连接上服务器。这种情形被形象地称之为"自己把自己锁在了门外",因为无论用何种方式,用户均无法使用进行连接。实际上,我们可以通过修改一个注册表键值来将身份验证方式改为 SQL Server 和 Windows 混合验证,步骤如下所示:

  1、点击"开始"-"运行",输入regedit,回车进入注册表编辑器;

  2、依次展开注册表项,浏览到以下注册表键:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]

  3、在屏幕右方找到名称"LoginMode",双击编辑双字节值;

  4、将原值从1改为2,点击"确定";

  5、关闭注册表编辑器;

  6、重新启动SQL Server服务。

  此时,用户可以成功地使用sa在企业管理器中新建SQL Server注册,但是仍然无法使用Windows身份验证模式来连接SQL Server。这是因为在 SQL Server 中有两个缺省的登录帐户:BUILTIN\Administrators 以及 <机器名>\Administrator 被删除。要恢复这两个帐户,可以使用以下的方法:

  1、打开企业管理器,展开服务器组,然后展开服务器;

  2、展开"安全性",右击"登录",然后单击"新建登录";

  3、在"名称"框中,输入 BUILTIN\Administrators;

  4、在"服务器角色"选项卡中,选择"System Administrators" ;

  5、点击"确定"退出;

  6、使用同样方法添加 <机器名>\Administrator 登录。

  以下注册表键

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode

  的值决定了SQL Server将采取何种身份验证模式。该值为1,表示使用Windows 身份验证模式;该值为2,表示使用混合模式(Windows 身份验证和 SQL Server 身份验证)。

  看完如何解决前两个错误的方法之后,让我们来看一下如图 3 所示的第三个错误。

  如果遇到第三个错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连接,不过是由于连接的时间大于允许的时间而导致出错。这种情况一般会发生在当用户在Internet上运行企业管理器来注册另外一台同样在Internet上的服务器,并且是慢速连接时,有可能会导致以上的超时错误。有些情况下,由于局域网的网络问题,也会导致这样的错误。

  要解决这样的错误,可以修改客户端的连接超时设置。默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是 4 秒,而查询分析器是 15 秒(这也是为什么在企业管理器里发生错误的可能性比较大的原因)。具体步骤为:

  1、在企业管理器中,选择菜单上的"工具",再选择"选项";

  2、在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡;

  3、在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如 20。

  查询分析器中也可以在同样位置进行设置。

在windows控制面版-->管理工具-->服务-->MSSQLSERVER-->属性-->改为你的新的操作系统密码!或在windows控制面版-->管理工具-->服务-->MSSQLSERVER-->属性-->改为本地登陆!

12月31日

小学跑题作文之看《归途如虹》有感

在老婆滴强烈要求下,偶在这些日子终于断断续续地把一部军旅电影《归途如虹》给看完了。

要求的原因很简单,奏是因为偶自由散漫,无组织无纪律,坐没坐相,站没站相……(偶自己总结的,大概也就这个意思,哈哈)

          其实偶一直知道自己这方面滴毛病,并且并不认为这是毛病。一直觉得自己的生活就应该自己说了算哈,想干点啥干点啥,没有必要要求自己在一些小事上太较真。老婆就一直给我灌输军人习惯是多么多么得好,往人看起来舒服。偶则是一致对军人比较看不惯,认为在军营就是一种个性的抹杀和摧残。尤其是在大学出的军训时抵触情绪达到了极点,认为那些教官挺傻的(在此要强烈声明一下,偶不是不尊重军人,偶也知道,一个军队的战斗力和凝聚力必须让军人和机器一样做到令行禁止。在这方面偶是挺佩服的,但是让俺去做滴话那就困难了,嘿嘿)

          自己一直没有过什么军旅生活,也就是管中窥豹而已。通过一些外在的新闻和自身的一丁点体验说说而已。

          废话还是少说,偶们就进入小学作文读后感那一套吧,看个电影要写读后感滴。又想起小学的每年暑假学校里都要发一套爱国主义教育的电影票,如果没记错的话是五张一套。记忆力就和弟弟一块去看过一次。小时候还是比较喜欢看这种电影的,那时候童年的小男孩都比较喜欢打打杀杀的,倒不知道现在的这些小孩们是不是还会去看小兵张嘎之类的电影,估计都不会提起兴趣来看的。经常在公交车上或者一些别的地方看这一圈小男孩在那讨论网络游戏,感觉到代沟还是蛮深的。不过最要命的就是五张票对应着五篇读后感,这就让少时的我们很难提起兴趣去看电影,顶多也就是找个借口出去转转。

          记得最多的是几个玩伴搞串联似的串在一起,夏日的午后前打后闹的走在大街上,空空如也的裤兜,不整的衣衫,一毛钱的冰棍,记忆时间好像过得飞快,感兴趣的东西太多,居然有时一条卖小商品的街道都能一块逛上大半天。当时在商店的橱窗前的我们总是你拥我挤,橱窗后的店主们总是一副懒洋洋无精打采的样子,好像无视我们存在一样……

          人有太多回忆可不太好,打住打住,言归正传。

          这次看电视剧的目的不一样,抱着一种学习滴态度来看滴,着重个人的细节。不知道是军装改得比较好了还是咋地,现在看军装还是挺顺眼的,挺不错的。倒不知道我要是穿军装会是啥效果,很想试试,哈哈。

          其实对军装并不是很感冒,感兴趣的是军姿。一个人的动作表现着一个人的精神状态,偶是越来越发现这一点十分重要,并且的确如此。偶承认,偶一前走路呢,喜欢低着头,弓着腰。这一点老板也替俺纠正过,当时就拍着我的肩膀让我挺直。挺胸表明一种气势,虽然偶不知道自己是不是有气势,但是对于剧中的军姿来看,基本没看到例外想象。偶看汤大帅哥个也不高,但是胸也是到处挺得挺直,借鉴借鉴。

          另外呢,偶还要改正一下走路的形态,尽量能把肩打开,长得丑不要紧,气势要出来,哈哈。

          还有一点要学习的要数性格方面,剧中偶也看到了各种不同的性格表现从不同的人格魅力。但是有一点相同的是都有一种气势,源于内心吧,说白了也就是自信。偶有时候可能表现得就不是太好,也深入的考虑过这个问题,不多说了,偶改正。

          最后,偶要改一下自己的懒散作风,这个问题一直比较困扰。偶是有时懒散有时还能勤快点,这就是一个心理懒散的问题,作风问题吧,呵呵。不好不好,这样不好,一直想做个勤快人,慢慢努力,慢慢努力。

偶不可能以一个军人的要求来要求自己,但是一样要吸取其精华。有些东西还是不可取的,比如说剧中有军人对家庭的一味索取,让人敬佩又让人叹息。偶可不像那样,亲情始终还是第一位的,除非祖国真的很需要我,钱需要我不行,哈哈。

不一定做个军人,但是一定要学做一个军人。

如果是小学的时候,语文老师会如是批,无中心思想,结构散乱,两个字,跑题。

12月16日

离开网络的日子

    打昨个下午实验室网络就坏掉了,不过偶还能写Blog,全仗于微软lab里的这个 windows live writer,不知道为什么现在出啥都叫Beta版,以后偶也得注意,一般8叫Release,哈哈,以防砸了牌子。

    偶今天特地不以功利的角度来看Smart Client,偶有有一些新的发现。比如偶做的相关的所谓Smart Client,其实并没有体现出比传统C/S的强大优势出来。偶还能现在在这发牢骚,全仗着一个可以脱机使用的优势,在做SSO的时候偶也没太体现出这个离线数据的优势来。只有一个很平常的Speech SDK的训练。虽然SSO中并无这种需求,偶坦白以前也是确实没考虑这种情况。提到这点,偶现在还在想下一个PPC程序是不是要考虑进去这一点呢,一想到要具体去布置无线心里就发懵啊,谁能告诉我信号能穿几层水泥墙啊,这可是关系到成本问题啊。偶想如果真不行就可以暂时离线,连接后数据再同步。也是一种办法,但是工作量可是加大了啊。

   唉,想想就头大啊。希望所有事情都能进展顺利。革命尚未成功,同志仍须努力。真希望我能找个温暖的地方,啥都不用干,没有网络,没有电话,没有任务就这么睡上两天。

    这个sapi用起来还真舒服,看看空闲的时候能不能正点相关的一些好玩的应用,那样的话应该比较舒服。也算是技术改变生活吧。现在从这一点就想到了一点关于科学和技术的差别。现在感觉科学对我来说还是相当神圣的一个词,偶真没有在做什么科学研究,努力还不够吧。在咱们这,好像没有人尊重科学,分成了理论和技术两大派。理论就是纯做理论,一点应用也没有,真不敢恭维那是科学;技术就是干活,基本上也没什么思考,常听到这么一句话,这地方已经很成熟了,没有什么可写可研究的了。一般来说,科学要领先于产品5-10年,老感觉现在周围科学没有什么领先灯的实际意义,技术也没有很好的规范和体系,整一个四不像。拿个具体例子吧,偶在学B-树的时候不知道大部分数据库产品中的索引是以这种形式保存的,只是有的示意图,遍历一下了事;偶在学数据库是偶尔听说索引可以加快搜索速度,别的就不知道了。只能自己多学点是点了,还好有点兴趣所在。

    昨晚看了中国经济人物评选,上周看得好像是中部,昨是东部。偶是小人物,只是看看热闹,也没有过雄心壮志去向这些经济人物看齐。只不过在此结合自己所学发表一下感想,说说我所有想到的几点看法。中部和东部给人两种感觉,总体上来说,中部的那些企业家们年龄段要老很多,平均年龄在评选十大杰出青年的年龄上限吧,东部平均也就是个下限。其次,感觉两个地区经济发展的阶段还是有区别,中部大部分是有实体的一些工业产品,搞的是实业。并且很佩服有位忘了是哪位了,在行政手段上深有中国传统的一些思想的融合,相当厉害。东部看起来是越来越抽象,风投什么的。开始的是在资金上搞市场,而不是单纯从单一产品上来发现商机,越来越有国际化的趋势。

    虽然受着他们的所谓资本主义剥削,但是偶还是支持民族品牌滴,呵呵。社会在发展,科技在进步。当年从机器语言到了一些面向过程的高级语言,现在是面向对象,越来越抽象。一面向对象,就有了各种各样的规则能够让你在游戏中玩得越来越好,所以就有了一些固定的模式,设计模式(一家之言,不信也罢,哈哈)。看来做什么都是这么个样子,从产品到资金,一步比一步抽象。做的是同样的事,但是却是不同的规则,但是你既然能说出面向对象的好处,你也一样意识到那一种规则好。看来还是抽象出来的好。