﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-::梁乔峰::明镜台::原创空间::C#.NET2.0,C++技术BLOG-随笔分类-c#</title><link>http://www.cppblog.com/AthrunOnline/category/8049.html</link><description>人最重要的是心境,一颗平静安稳的心才能更好的进步,保持自己的心态.成为梦想中的高手QQ:714677798</description><language>zh-cn</language><lastBuildDate>Wed, 22 Jul 2009 12:37:53 GMT</lastBuildDate><pubDate>Wed, 22 Jul 2009 12:37:53 GMT</pubDate><ttl>60</ttl><item><title>Oxite解读 ----- （1） -------  概述</title><link>http://www.cppblog.com/AthrunOnline/archive/2009/07/22/90793.html</link><dc:creator>梁乔峰</dc:creator><author>梁乔峰</author><pubDate>Wed, 22 Jul 2009 00:39:00 GMT</pubDate><guid>http://www.cppblog.com/AthrunOnline/archive/2009/07/22/90793.html</guid><wfw:comment>http://www.cppblog.com/AthrunOnline/comments/90793.html</wfw:comment><comments>http://www.cppblog.com/AthrunOnline/archive/2009/07/22/90793.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AthrunOnline/comments/commentRss/90793.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AthrunOnline/services/trackbacks/90793.html</trackback:ping><description><![CDATA[<div class="postTitle"><a id="homepage1_HomePageDays_DaysList_ctl00_DayItem_DayList_ctl00_TitleUrl" class="postTitle2" href="http://www.cnblogs.com/AthrunOnline/archive/2009/07/21/OXite_1_20090721.html">OXite解读（1）----- 
概述</a> </div>
<p style="TEXT-INDENT: 26.25pt"><span style="FONT-FAMILY: 宋体">开源博客</span>OXITE<span style="FONT-FAMILY: 宋体">，这个博客系统是使用</span>ASP.NET MVC<span style="FONT-FAMILY: 宋体">来实现，最新版本的是</span>2009<span style="FONT-FAMILY: 宋体">年</span>2<span style="FONT-FAMILY: 宋体">月</span>15<span style="FONT-FAMILY: 宋体">发布的。</span>MVC<span style="FONT-FAMILY: 宋体">并不是什么新东西，我研究</span>OXITE<span style="FONT-FAMILY: 宋体">主要的目的其实就是为了学习</span>MVC<span style="FONT-FAMILY: 宋体">而已。所以我们从结构上去分析这个东西，因为一次写分析类的文章，可能写的并不好。看到说得不准确的欢迎指出，一起进步嘛。</span></p>
<p style="TEXT-INDENT: 26.25pt">&nbsp;</p>
<p style="TEXT-INDENT: -21pt; MARGIN: 0cm 0cm 0pt 47.25pt"><span>一、</span><span style="FONT-FAMILY: 宋体">什么是</span>Oxite;</p>
<p style="MARGIN: 0cm 0cm 0pt 47.25pt">&nbsp;</p>
<p style="MARGIN: 0cm 0cm 0pt 47.25pt">Oxite<span style="FONT-FAMILY: 宋体">是微软发布的开源博客平台。</span><br><br>Oxite<span style="FONT-FAMILY: 宋体">平台使用微软公共许可</span>(Microsoft Public License)<span style="FONT-FAMILY: 宋体">授权方式，这是微软经过开放源代码促进会</span>(OIS)<span style="FONT-FAMILY: 宋体">认证的开源许可之一。</span><br><br><span style="FONT-FAMILY: 宋体">微软称，</span>Oxite<span style="FONT-FAMILY: 宋体">是一种具有可拓展性的、标准兼容的内容管理系统，旨在支持博客或更大型的网</span> <span style="FONT-FAMILY: 宋体">站，能支持广播、引用通告、匿名或验证评论、个人全球统一标识</span>(Gravatar)<span style="FONT-FAMILY: 宋体">头像及在任何页面级别输出</span>RSS Feed<span style="FONT-FAMILY: 宋体">等功能。用户可在某一站点上创建和编辑一整套页面，并可在页面中定制</span>HTML<span style="FONT-FAMILY: 宋体">代码，而且还可在单个站点上创建多个博客。</span><br><br><span style="FONT-FAMILY: 宋体">微软称，开发</span>Oxite<span style="FONT-FAMILY: 宋体">平台的最初目的就是向开发者展示</span>ASP.Net MVC<span style="FONT-FAMILY: 宋体">的功能。</span><br><span style="FONT-FAMILY: 宋体">微软使用</span>Oxite<span style="FONT-FAMILY: 宋体">创建了</span>Mix Online<span style="FONT-FAMILY: 宋体">网站，并向开发者提供了该站点的源代码以供学习。</span>Mix Online<span style="FONT-FAMILY: 宋体">是一个网络社区，其中心内容是微软的</span>Mix<span style="FONT-FAMILY: 宋体">网络开发者会议。</span><br><br><span style="FONT-FAMILY: 宋体">微软</span>Oxite<span style="FONT-FAMILY: 宋体">项目负责人埃里克</span>&#183;<span style="FONT-FAMILY: 宋体">波特尔</span>(Erik Porter)<span style="FONT-FAMILY: 宋体">称，</span>Oxite<span style="FONT-FAMILY: 宋体">并非现有的、已经确立的博客系统的直接竞争者，也无意挑战微软自身的</span>SharePoint<span style="FONT-FAMILY: 宋体">工具，后者也带有内容管理系统的功能。他表示，</span>Oxite<span style="FONT-FAMILY: 宋体">平台目前的对象仅为开发者，但最终可能适用于全体公众。</span><br><br><span style="FONT-FAMILY: 宋体">埃里克</span>&#183;<span style="FONT-FAMILY: 宋体">波特尔</span>(Erik 
Porter)<span style="FONT-FAMILY: 宋体">在一个</span>Oxite<span style="FONT-FAMILY: 宋体">论坛上写道：</span>&#8220;<span style="FONT-FAMILY: 宋体">我们对</span>Oxite<span style="FONT-FAMILY: 宋体">平台没有任何其他计划，只是希望为开发者提供一个能运行任何站点的范本。也就是说，到目前为止它只是一个社区项目，但如果社区决定要把它带往其他方向，我们也不会加以阻止。</span>&#8221;</p>
<p>&nbsp;</p>
<p style="TEXT-INDENT: -21pt; MARGIN: 0cm 0cm 0pt 47.25pt"><span>二、</span><span style="FONT-FAMILY: 宋体">我为什么选择</span>Oxite</p>
<p style="MARGIN: 0cm 0cm 0pt 47.25pt"><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp; 
对于</span>Oxite<span style="FONT-FAMILY: 宋体">其实我只是在无聊的时候想找下相关</span>MVC<span style="FONT-FAMILY: 宋体">开发的现成项目。所以就进行了一番研究，我觉得这个系统十分适合初学者，如果你觉得不能理解面向对象，可以认真看一下这个</span>Oxite,<span style="FONT-FAMILY: 宋体">它充分的现实出面向对象建模的思想，在学校学习的时候我们老师总会用车，人之类的来描述面向对象，而我们在网上看到的大部分代码，真正用到面向对象思想的其实不多。甚至可以说是教程式的。完全不能体现出面向对象的精髓。</span>Oxite<span style="FONT-FAMILY: 宋体">是轻量级的，它并不像</span>petshop<span style="FONT-FAMILY: 宋体">那个巨型和复杂。可能你第一打开代码的时候会被他的类库项目吓着。。当你静下心来的时候。你会发现，这个是一个很好的学习型作品。</span></p>
<p style="TEXT-INDENT: -21pt; MARGIN: 0cm 0cm 0pt 47.25pt"><span>三、</span><span style="FONT-FAMILY: 宋体">所需环境</span></p>
<p style="TEXT-INDENT: -21pt; MARGIN: 0cm 0cm 0pt 68.25pt"><span>1.<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>Visual Studio 2008 
SP1<span style="FONT-FAMILY: 宋体">，</span></p>
<p style="TEXT-INDENT: -21pt; MARGIN: 0cm 0cm 0pt 68.25pt"><span>2.<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>ASP.Net MVC 1.0</p>
<p style="TEXT-INDENT: -21pt; MARGIN: 0cm 0cm 0pt 68.25pt"><span>3.<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>xunit-1.5</p>
<p style="TEXT-INDENT: -21pt; MARGIN: 0cm 0cm 0pt 68.25pt"><span>4.<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</span></span>AntiXssLibraryV1.5Installer.msi</p>
<p style="TEXT-INDENT: -21pt; MARGIN: 0cm 0cm 0pt 68.25pt"><span>5.<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>Enterprise Library 
4.1 - October 2008.msi</p>
<p style="TEXT-INDENT: -21pt; MARGIN: 0cm 0cm 0pt 68.25pt"><span>6.<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>Microsoft SQL Server 
2005</p>
<p style="TEXT-INDENT: -21pt; MARGIN: 0cm 0cm 0pt 68.25pt"><span>7.<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>BlogML 2.zip</p>
<p style="MARGIN: 0cm 0cm 0pt 68.25pt">&nbsp;</p>
<p style="MARGIN: 0cm 0cm 0pt 68.25pt"><span style="FONT-FAMILY: 宋体">以上是我使用的版本，这些版本能让整个项目跑起来。页面很简单，也很简洁，因为这个项目目前只是一个显示技术的作用的项目。</span></p>
<p style="TEXT-INDENT: -21pt; MARGIN: 0cm 0cm 0pt 47.25pt"><strong><span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-WEIGHT: normal">四、</span></strong><strong><span style="FONT-FAMILY: 宋体; FONT-WEIGHT: normal">项目结构</span></strong><strong></strong></p>
<p style="MARGIN: 0cm 0cm 0pt 47.25pt">Oxite<span style="FONT-FAMILY: 宋体">解决方案由</span>5<span style="FONT-FAMILY: 宋体">个项目组成：</span></p>
<p style="TEXT-INDENT: -21pt; MARGIN: 0cm 0cm 0pt 68.25pt"><span>1.<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>Oxite<span style="FONT-FAMILY: 宋体">；</span> <span style="FONT-FAMILY: 宋体">（核心基础项目）</span></p>
<p style="TEXT-INDENT: -21pt; MARGIN: 0cm 0cm 0pt 68.25pt"><span>2.<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</span></span>Oxite.LinqToSqlDataProvider<span style="FONT-FAMILY: 宋体">；（数据基础项目依赖于</span>Oxite<span style="FONT-FAMILY: 宋体">）</span></p>
<p style="TEXT-INDENT: -21pt; MARGIN: 0cm 0cm 0pt 68.25pt"><span>3.<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>Oxite.Mvc<span style="FONT-FAMILY: 宋体">；（相当于</span>MVC<span style="FONT-FAMILY: 宋体">中的</span>C<span style="FONT-FAMILY: 宋体">层，</span>Controllers<span style="FONT-FAMILY: 宋体">层的作用，依赖于</span>Oxite<span style="FONT-FAMILY: 宋体">）</span></p>
<p style="TEXT-INDENT: -21pt; MARGIN: 0cm 0cm 0pt 68.25pt"><span>4.<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>Oxite.Mvc.Tests<span style="FONT-FAMILY: 宋体">；（测试层）</span></p>
<p style="TEXT-INDENT: -21pt; MARGIN: 0cm 0cm 0pt 68.25pt"><strong><span>5.<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</span></span></strong>OxiteSite<span style="FONT-FAMILY: 宋体">；（显示层）</span><strong></strong></p>
<p style="MARGIN: 0cm 0cm 0pt 68.25pt"><strong><span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-WEIGHT: normal">M</span></strong><strong><span style="FONT-FAMILY: 宋体; FONT-WEIGHT: normal">其实就是</span></strong><strong><span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-WEIGHT: normal">1,2</span></strong><strong><span style="FONT-FAMILY: 宋体; FONT-WEIGHT: normal">，</span></strong><strong><span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-WEIGHT: normal">C</span></strong><strong><span style="FONT-FAMILY: 宋体; FONT-WEIGHT: normal">是</span></strong><strong><span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-WEIGHT: normal">3,V</span></strong><strong><span style="FONT-FAMILY: 宋体; FONT-WEIGHT: normal">是</span></strong><strong><span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-WEIGHT: normal">5</span></strong></p>
<p style="MARGIN: 0cm 0cm 0pt 47.25pt">&nbsp;</p>
<p><span style="FONT-FAMILY: 宋体">相信看到这里大家都可以看到已经基本可以运行期这个系统了。下一章，我将会是解析数据库</span></p><img src ="http://www.cppblog.com/AthrunOnline/aggbug/90793.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AthrunOnline/" target="_blank">梁乔峰</a> 2009-07-22 08:39 <a href="http://www.cppblog.com/AthrunOnline/archive/2009/07/22/90793.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何学习编程</title><link>http://www.cppblog.com/AthrunOnline/archive/2009/07/20/90618.html</link><dc:creator>梁乔峰</dc:creator><author>梁乔峰</author><pubDate>Mon, 20 Jul 2009 05:45:00 GMT</pubDate><guid>http://www.cppblog.com/AthrunOnline/archive/2009/07/20/90618.html</guid><wfw:comment>http://www.cppblog.com/AthrunOnline/comments/90618.html</wfw:comment><comments>http://www.cppblog.com/AthrunOnline/archive/2009/07/20/90618.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/AthrunOnline/comments/commentRss/90618.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AthrunOnline/services/trackbacks/90618.html</trackback:ping><description><![CDATA[如何学习编程&nbsp;<div><p class="MsoNormal" style="text-indent:21.0pt;mso-char-indent-count:2.0"><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">大家第一次接触编程的时候我想很多人都会在那些</span><span lang="EN-US">Q</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">群啊之类的地方不断的问，怎么学习编程，要看些那些书。甚至在百度，谷歌里搜索如何学习编程。</span></p>

<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp; </span></span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">这篇文章，我会从我自己学习编程的角度去描述，如何学习，可能不是最好的学习方法，但是我想对于一些朋友总会有帮助的，因为方法是源自你个人。我在这里说一下我的格言：别去想别人怎么做，首先应该想自己怎么做。别去想别人怎么帮助你。首先想自己帮助自己。</span></p>

<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp; </span></span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">想想我自己学习编程也有好多年啦。初三开始小打小闹的用</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言写个无聊的</span><span lang="EN-US">printf()</span><span style="font-family:宋体;mso-ascii-font-family:
Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">到用</span><span lang="EN-US">HTML</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">写几个个人网站。虽然没啥技术含量不过都是自己的劳动，那时候真的很激动，现在回想起来，其实那时候很幼稚。不过也造就了我的兴趣吧！好了闲话就少说了，我们入正题。</span></p>

<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal" style="text-indent:21.0pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">在学习之前，请允许自己先问下自己：我为什么要做这样的事。对于编程，我会先问一下，你为什么要学习编程？你会怎么回答？</span></p>

<p class="MsoNormal" style="text-indent:21.0pt"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">A</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">：兴趣；</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">B</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">：读书需要；</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">：传闻是高薪职业；</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">D</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">：容易就业；</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">E</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">：被逼的；</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">F</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">：无聊学学；</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">这个你会怎么选择；什么样的目的，得到什么样的结果。如果你选择（</span><span lang="EN-US">A</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">）我会开心，兴趣就是动力，就算没有人教，你也会鼓足勇气去学习，就我个人来说，我是那种屁股坐不稳的人，你叫我坐在那里什么都不做半个小时，我会全身都不舒服的。但是一说到计算机，编程我可以一坐就是</span><span lang="EN-US">7</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">，</span><span lang="EN-US">8</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">个小时自己还没感觉。兴趣第一，很好，你以这个为目的我相信你一定能学好。相信你也有自己的一套学习方式。</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">如果你选择的是</span><span lang="EN-US">B</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">：那么你也有一定的成功几率，首先你要是一个会读书的人，可以说读书就是你的兴趣，那么你也可以学好。当然如果只是随潮流大家都读所以我也要读，那么你只能学不好了。</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">如果你选择的是</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">：那么你还是早点放弃吧，那些拥有高薪的都是十分牛的人，其实的广大程序员还是挣扎在生活的水平线上。混饭吃而已，所以如果你抱着高薪去学习编程，你一定肯痛苦。这类也是最能有成就的一类，编程是技术需要的是一份执着，但是你的执着只是金钱。技术现在并不等于金钱。。。。</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">如果你选择的是</span><span lang="EN-US">D</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">：我还是劝你早点放弃，现在的就业也不乐观啊，失业大军里计算机就占了很大的一部分比重，你随时都可能是其中的一分子。</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">如果你选择的是</span><span lang="EN-US">E</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">：很好，你也有可能学好，前提是逼你的人能一直强逼你下去，让你进步，一句非常经典的话：&#8220;人都是被逼出来的。。。。。&#8221;。你出生的时候的确是被逼出来的，被你妈妈逼出来，呵呵！</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">如果你选择的是</span><span lang="EN-US">F</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">：也不错，起码你无聊的时候想到的居然是编程，证明编程还能给你带来乐趣。</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">既然你已经知道为什么学习编程，那么我们要做的就是怎么去学习了。现在的编程语言很多，上百个语言，但是无论什么语言，都会有共同性的。所以你要学习编程那么就要先学习编程的思想，这个编程的思想你也只能看一下而已。了解一下计算机如何去读这些编程语言这个很重要。不了解过个你学习任何编程语言都很难做到灵活运用。</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">你明白了计算机是如何读编程语言是的这个时候你就可以开始选择你学习的语言了。至少这些编程语言都是我能看懂的，可以说是自己学过的。也会解析一下学习这些语言的一些特点。</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">A: c#.NET</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">B: Java</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">C: C/C++</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">D: PHP</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">E: JavaScript</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">F: lua</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">我只列出了五种</span><span lang="EN-US">,</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">其实还有更多的语言</span><span lang="EN-US">,</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">有兴趣可以自己去找下这些语言的特色</span><span lang="EN-US">.</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">其实我了出的这些都有一个特色</span><span lang="EN-US">.</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">都是跟</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言有一定的相似的</span><span lang="EN-US">.</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">A: C#</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">这个语言是微软推出的</span><span lang="EN-US">,</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">目前大部分应用都是应用在</span><span lang="EN-US">WIN</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">平台上</span><span lang="EN-US">,</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">虽然</span><span lang="EN-US">LINUX</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">也能用</span><span lang="EN-US">,</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">但支持还不是太好</span><span lang="EN-US">.</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">编程风格上我觉得是最优美</span><span lang="EN-US">.</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">至少看起来很舒适</span><span lang="EN-US">,</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">强大的智能感知</span><span lang="EN-US">.</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">编程的学习难度分级是</span><span lang="EN-US">:</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">初学偏易，一般编程中等，高级编程难。梯度不算陡峭。虽然是面向对象，但是现在大部分的人都很用到面向对象至少我在国内反编译很多的应用系统的时候很多都没有用到编程思想的，虽多就是把类用来实现脚本编程闭包功能而已。真正使用到面向对象的继承多态的并不多。当然也有很多是使用了面向对象思想的，所以我觉得初学</span><span lang="EN-US">C#</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">的时候完全可以放弃对象的继承，多态这类比较复杂的东西。专心学习他的语法糖，还有封装好的</span><span lang="EN-US">API</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">，其实</span><span lang="EN-US">C#</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">这个语言已经有个很完善的</span><span lang="EN-US">API</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">基本上的应用都可以直接使用</span><span lang="EN-US">API</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">来实现，而且从算法构造上也不算复杂。再加上</span><span lang="EN-US">IDE</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">的智能感知，新手只需要了解各个命名空间的作用就可以了，智能感知会帮助我们完成</span><span lang="EN-US">API</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">的调用（至少你要知道那些方法在那个空间，怎么用）。所以初学我把它定义在上手&#8220;易&#8221;。现在的学习其实并非一定要从记事本开始。学会使用</span><span lang="EN-US">IDE</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">学习其实也是一项技能。编程很重要的一点。就是你动了多少手，你就收获了多少，无论你看了多少别人的代码，如果你不自己动手去写一下，你永远没办法感受到内涵，之前我有部分同学，他们跟我说，现在网上大把代码，那里需要自己敲得那么辛苦干嘛上网</span><span lang="EN-US">COPY</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">一下就什么都有了，傻瓜才自己手写。好吧我承认我傻瓜。但是自少我现在的水平我敢说，，你只需要给我</span><span lang="EN-US">2</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">样东西我一样能写出你上网找的那些代码。一样是</span><span lang="EN-US">VS</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">，另一样是帮助文档。说起这个事又令我想起最近公司招聘的一些趣事。最近公司面试了接近</span><span lang="EN-US">80</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">个人吧，因为我们公司的上机考试是不允许上网的。呵呵！你们可以想象一下，不能上网后只有</span><span lang="EN-US">30</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">个能勉强敲的出代码的。能做出题目的更是少得可怜。突然我就想，这些人到底有没基础的，一个简单的登录功能和上传文件功能不能上网就不会写，我真是狂汗。。。一些号称三年五年工作经验的，居然还写不出一个简单的交叉表查询。（其实就</span><span lang="EN-US">10</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">句代码。。。。）。所以啊过分依靠网络怎么可能有自己的技术积累呢，这些人在我眼里三年五年也成不了构架师。。可能十年也去不到构架师的水平。</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">B</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">：</span><span lang="EN-US">JAVA </span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">跟</span><span lang="EN-US">C#</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">类似，传闻微软推出</span><span lang="EN-US">C#</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">也是为了对抗</span><span lang="EN-US">JAVA</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">而搞出来的。这两种语言有很多相似的地方什么是命名的方式上都有很多相似的地方，</span><span lang="EN-US">JAVA</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">也是从</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言里发展起来的。不过我觉得在学习曲线上，初学要比</span><span lang="EN-US">C#</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">难，中国人普遍英语不太好。而且在</span><span lang="EN-US">IDE</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">上微软的</span><span lang="EN-US">VS</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">要比</span><span lang="EN-US">JAVA</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">的各类编辑器要优胜，主要是在智能感知上，还有一些辅助上。可能很多</span><span lang="EN-US">JAVA</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">的铁杆</span><span lang="EN-US">FANS</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">会给我丢西瓜，丢鸡蛋了。但我敢说，我说的是事实，</span><span lang="EN-US">JAVA</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">位置一个环境都很辛苦，至少我学习的时候是这样。免费啊，</span><span lang="EN-US">JAVA</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">很多东西都是免费的，微软要收费的，收费肯定好了。。。。我会偷偷的笑。。。你丫就不用盗版？有了光荣的盗版。收费问题根本就不是问题，再说从学习的角度。。盗版这些东西根本就无关痛痒的。。反而更容易召集人气。。。</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">C: C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">语言可以说是非常牛逼的语言，长期位居第一。但是需要投入的精力也不少啊，智能感知一直进步不大，可能是因为万恶的宏定义呵呵（这个万恶可不是我说的。）当然学习</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言如果你不懂使用宏定义那么你肯定没学过</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言，</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言的宏定义虽然一直在</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言的书本上很少描述但是实际应用却是不可缺少的，我看过</span><span lang="EN-US">IDSOFT</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">的</span><span lang="EN-US">DOOM</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">的源代码里简直就是神一般。但是看起来也真是辛苦。题外话，其实上面很多语言都是根据</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言衍生出来的，什么很多特性都是参照了</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言。用很玄幻的说话。</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言是远古时代遗留的强大魔法。既然是远古学习曲线自然就陡峭得可以，我个人感觉我的</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言水平其实都只是菜鸟而已。</span><span lang="EN-US">C++</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">一样是菜鸟。</span><span lang="EN-US">C++</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">和</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">其实我觉得是</span><span lang="EN-US">2</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">个语言根本不能混为一谈的，但是很多招聘之的都把</span><span lang="EN-US">C/C++</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">归为一类，所以我也把它归为一类，很多人想问学</span><span lang="EN-US">C++</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">是不是要先学</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">。而且</span><span lang="EN-US">C++</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">的分支多得吓人。内涵也丰富得吓人。。</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言个人技术化，我个人觉得</span><span lang="EN-US">C/C++</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">起码要</span><span lang="EN-US">4</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">年才算出师，</span><span lang="EN-US">JAVA</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">是</span><span lang="EN-US">2</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">年，</span><span lang="EN-US">C#</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">都是</span><span lang="EN-US">2</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">年。而且还需要一系列的计算机基础，算法基础等一些东西。而</span><span lang="EN-US">JAVA</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">和</span><span lang="EN-US">C#</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">都把这些东西封装了成标准的</span><span lang="EN-US">API</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">了，我们只需要使用。但是</span><span lang="EN-US">C/C++</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">这些东西都没有一个确定的标准例如界面库，有人用</span><span lang="EN-US">QT</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">有人用</span><span lang="EN-US">MFC</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">。这些都是不一样的所以选择的路也多，学的东西自然也更多了。但从编程上，并非就是</span><span lang="EN-US">C++</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">的就比用</span><span lang="EN-US">C#</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">的牛。</span><span lang="EN-US">C++</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">只是拥有深厚的历史，有自己独特的文明。是因为它的文明而牛。</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">D</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">：</span><span lang="EN-US">PHP </span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">接触不深，但是我觉得它是一个制作网页的好语言，其他领域我并不怎么看好他，我觉得</span><span lang="EN-US">PHP</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">在开发网页上有很大的优势，但是开发</span><span lang="EN-US">B/S</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">级系统应用就现得比较力不从心了。所以如果你定位自己作为一个网页开发人员的话，你就应该学习这种语言。如果是</span><span lang="EN-US">B/S</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">级的应用的话，就应该使用</span><span lang="EN-US">C#</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">或者</span><span lang="EN-US">JAVA</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">，或者其他的语言。</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">E</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">：</span><span lang="EN-US">JavaScript</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">，非常有名的脚本语言，如果你想从事</span><span lang="EN-US">B/S</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">的开发，网页开发，你就一定要学这个，是一个必须掌握的技能。学习曲线相对比较平坦，而且内容也不算多，但是应用却十分灵活的语言。强烈推荐初学者先学习这个语言，来寻找感觉，因为这个语言完全不存在编程环境的问题，你只需要有浏览器，记事本，两样任何系统都有的软件就可以编写它。所以我觉得首先学习它会对你理解编程思想有一定帮助。</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">F</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">：</span><span lang="EN-US">LUA</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">这个也是一个脚本语言，成就这个语言的名声是来自一个叫&#8220;魔兽世界&#8221;的游戏，目前我了解</span><span lang="EN-US">LUA</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">应用的领域比较多都是作为一种嵌入语言，嵌入到</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">或者</span><span lang="EN-US">C++</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">中去使用，在国内很多游戏公司都会有</span><span lang="EN-US">LUA</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">程序员，部分会由</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言程序员去兼任。因为</span><span lang="EN-US">LUA</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">在语法上和</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">有很相似的地方，基本对旧的</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言程序员学习</span><span lang="EN-US">LUA</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">是无难度的。当然也有它的局限性，作为脚本语言它本身就存在不足，而且这个语言本身就是作为</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言的扩展来用的所以，学习这个语言的话，建议先学习</span><span lang="EN-US">C</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">语言。或者成就更高（或者而已！）</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">我个人是选择</span><span lang="EN-US">C#</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">作为长期发展的语言的。我觉得这个语言比较适合我这种英语不算好，但是又喜欢编程的人。</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US">PS</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">：真心想学编程的必须要学习一定的英语能力，因为很多编程的先进思想都是英文的。所以英语好，对成为高手起很大作用的。</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">知道为什么学习编程，又选择了目标语言，接下来就是基础学习了。</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">这个基础学习，我觉得首先要对一些语法糖熟悉，第二件事情就是要多编，多看，可能你买的书都附带着实例代码的，我觉得对于初学者，首先你把书上的程序都照着编一次，在这期间，你一定会遇到无数的错误，但是这些错误将会是重复出现的，这个时候你就学会了如何排错，有人说过编程不是一口气写出来的，是修改出来的。所以学习排错是编程的第一步，虽然随书光盘有很多代码，但是这些代码都不属于你的。没有入你脑，唯一让这些代码属于你的办法就是多抄（打）几次。当你把一本编程的基础书都看透了。。至少别人问你这本书的知识你能答得上口，那就是你度过了第一时期了。你可以进入一搬阶段了。</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">一般的阶段，这个阶段我把它定义为是把这些语法组织成句子，组织成文章的时期。我想问下，大家都上过语文课吧，我们来回想一下，我们学习语文的过程</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">字</span><span lang="EN-US">=</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">》词</span><span lang="EN-US">=</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">》句</span><span lang="EN-US">=</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">》文章；</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">而编程的学习则是这样的；</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">变量</span><span lang="EN-US">=</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">》函数</span><span lang="EN-US">=</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">》类</span><span lang="EN-US">=</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:
Calibri;mso-hansi-theme-font:minor-latin">》架构</span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal" style="text-indent:20.25pt"><span style="font-family:宋体;
mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:
宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin">所以我们在初学阶段做的都是学那些字，那些词（其实就是语法糖）然后我们就会学造句，造句的时候就会涉及到把什么词语组合起来会得到优美的句子，而合理的句子，加上合理的逻辑就会变成一篇优美的文章。但是一篇优美的文章并非那么简单的。也就是一个程序架构的优美一样没那么简单一样，需要很多很多学识。</span></p></div><img src ="http://www.cppblog.com/AthrunOnline/aggbug/90618.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AthrunOnline/" target="_blank">梁乔峰</a> 2009-07-20 13:45 <a href="http://www.cppblog.com/AthrunOnline/archive/2009/07/20/90618.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开了个新窝。。来宣传下</title><link>http://www.cppblog.com/AthrunOnline/archive/2009/07/20/90585.html</link><dc:creator>梁乔峰</dc:creator><author>梁乔峰</author><pubDate>Mon, 20 Jul 2009 02:30:00 GMT</pubDate><guid>http://www.cppblog.com/AthrunOnline/archive/2009/07/20/90585.html</guid><wfw:comment>http://www.cppblog.com/AthrunOnline/comments/90585.html</wfw:comment><comments>http://www.cppblog.com/AthrunOnline/archive/2009/07/20/90585.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AthrunOnline/comments/commentRss/90585.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AthrunOnline/services/trackbacks/90585.html</trackback:ping><description><![CDATA[http://athrunonline.cnblogs.com/
我在园子的新窝。。。呵呵<img src ="http://www.cppblog.com/AthrunOnline/aggbug/90585.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AthrunOnline/" target="_blank">梁乔峰</a> 2009-07-20 10:30 <a href="http://www.cppblog.com/AthrunOnline/archive/2009/07/20/90585.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ASP.NET MVC 我的老师 ----------- 老赵</title><link>http://www.cppblog.com/AthrunOnline/archive/2009/07/15/90178.html</link><dc:creator>梁乔峰</dc:creator><author>梁乔峰</author><pubDate>Wed, 15 Jul 2009 14:05:00 GMT</pubDate><guid>http://www.cppblog.com/AthrunOnline/archive/2009/07/15/90178.html</guid><wfw:comment>http://www.cppblog.com/AthrunOnline/comments/90178.html</wfw:comment><comments>http://www.cppblog.com/AthrunOnline/archive/2009/07/15/90178.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/AthrunOnline/comments/commentRss/90178.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AthrunOnline/services/trackbacks/90178.html</trackback:ping><description><![CDATA[我学MVC都是跟一个在微软社区播报的牛人视频学的。这个微软社区播报倒是个好东西。。。技术推广上真是功不可抹啊～～我说的这个老赵，真的很经典，下面这段是取自老赵BOLG
---------------------------------------------------
赵劼，网名老赵，洋名Jeffrey Zhao。目前担任上海柏盛网络技术有限公司架构师（兼程序员）。

InfoQ中文站编辑，多次受邀于微软TechED，MSDN WebCast及各微软官方或社区会议中担任技术议题讲师。

关注前沿技术，并致力于开源社区与微软平台的组合优化。对函数式编程，并行程序开发，代码之美以及程序员能力与修养等相关问题也有着浓厚的兴趣，同时非常希望能够写程序到60岁。

希望可以给给初学者以合适引导。坚定的北大青鸟反对者，强烈愤慨恶劣的培训机构对于处于懵懂期的初学者以误导，强烈抵制各种虚假广告给业界带来的不良影响，强烈建议有理想有抱负的从业青年放弃北大青鸟，不要做冤大头。

---------------------------------------------------------

最重点是，哈哈本人曾经也在以篇博客里批判过北大青鸟，呵呵！虽然一直看老赵的视频教程，但一直没去过他的BLOG，说来真是惭愧。。。发现他的确是一个学者，高手。。
http://www.cnblogs.com/JeffreyZhao/
这是老赵的BLOG，希望和各位喜欢C#的一起学习，进步<img src ="http://www.cppblog.com/AthrunOnline/aggbug/90178.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AthrunOnline/" target="_blank">梁乔峰</a> 2009-07-15 22:05 <a href="http://www.cppblog.com/AthrunOnline/archive/2009/07/15/90178.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ADO.NET Entity Framework 随笔</title><link>http://www.cppblog.com/AthrunOnline/archive/2009/06/22/88323.html</link><dc:creator>梁乔峰</dc:creator><author>梁乔峰</author><pubDate>Mon, 22 Jun 2009 13:52:00 GMT</pubDate><guid>http://www.cppblog.com/AthrunOnline/archive/2009/06/22/88323.html</guid><wfw:comment>http://www.cppblog.com/AthrunOnline/comments/88323.html</wfw:comment><comments>http://www.cppblog.com/AthrunOnline/archive/2009/06/22/88323.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/AthrunOnline/comments/commentRss/88323.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AthrunOnline/services/trackbacks/88323.html</trackback:ping><description><![CDATA[ADO.NET Entity Framework 是什么？是微软发布的一个对象-关系映射框架，大家都知道JAVA里有一个很有名的组合开发叫SSH，微软也打造了类似的SSH模式，在VS2008 SP1。微软集合了两样比较重要的东西，一个是ASP.NET MVC 另外一个就是ADO.NET Entity Framework ，习惯上喜欢叫EF。貌似。。还少一个SPRING就完成了微软版本的SSH了。当然只是感觉上的相似，这个东西跟SSH完全是两会事。<br /><br />      ADO.NET Entity Framework是建立在LINQ的基础上的。提供了从关系数据库模式到对象的映射。在过去，我们开发的时候，都会先把这些关系数据库里的表，构建对象。过去哦那种开发模式，我想大家都不陌生了，三层架构里，这个东西是最常用的，而且现在网上也有很多类似的软件，生成数据库表对象代码。只是不知道那个公司把ADO.NET Entity Framework投入了实际开发中，在我初步的试用过程中，我觉得ADO.NET Entity Framework的确能帮我们提高开发速度。但是也有缺陷。就是更新太快，很难投入实际运作，就算是LING现在用的 公司也并不多，大部分都还是停留在2.0时代。真正要实现普及难度不是一般的大，1.1到2.0花了2年多才勉强普及，还是在1。1有重大不足的前提下，现在2。0已经相对问题，要这些公司更新你到3.5难度还不小啊，至少国内是这样。貌似我还没有资格评论这些。。。因为太年轻。<br /><br />    ADO.NET Entity Framework需要定义三层，分别是：逻辑层，概念层，映射层。如果是直接用VS的导航做，这些很方便，但是导航永远不能满足复杂的现实，所以我们还是需要自己动手去一步一步的做，当然，如果想先入门一下，可以用导航去感受一下。其实我也是在学习阶段，个人感觉貌似.NET的布局有点像向SSH的方向靠拢，突然看到SP1有这么大的整合感觉到。。。貌似.NET会有大动作。<br /><br />--------------------------------------------------------背景------来自百度知道---------------------------------------<br />        长久以来，程序设计师和数据库总是保持着一种微妙的关系，在商用应用程序中，数据库一定是不可或缺的元件，这让程序设计师一定要为了连接与访问数据库而去学习 <a href="http://baike.baidu.com/view/34.htm" target="_blank">SQL</a> 指令，因此在信息业中有很多人都在研究如何将程序设计模型和数据库集成在一起，对象关系对应 (Object-Relational Mapping) 的技术就是由此而生，像<a href="http://baike.baidu.com/view/7291.htm" target="_blank">Hibernate</a>或<a href="http://baike.baidu.com/view/954535.htm" target="_blank">NHibernate</a>都是这个技术下的产物，而微软虽然有了<a href="http://baike.baidu.com/view/159519.htm" target="_blank">ADO.NET</a>这 个数据访问的利器，但却没有像NHibernate这样的对象对应工具，因此微软在.NET Framework 2.0发展时期，就提出了一个ObjectSpace的概念，ObjectSpace可以让应用程序可以用完全对象化的方法连接与访问数据库，其技术概念 与NHibernate相当类似，然而ObjectSpace工程相当大，在.NET Framework 2.0完成时仍无法全部完成，因此微软将ObjectSpace纳入下一版本的.NET Framework中，并且再加上一个设计的工具(Designer)，构成了现在的 ADO.NET Entity Framework。<br /><div class="spctrl"></div>　　Entity Framework 利用了抽象化数据结构的方式，将每个数据库对象都转换成应用程序对象 (entity)，而数据字段都转换为属性 (property)，关系则转换为结合属性 (association)，让数据库的 E/R 模型完全的转成对象模型，如此让程序设计师能用最熟悉的编程语言来调用访问。而在抽象化的结构之下，则是高度集成与对应结构的概念层、对应层和储存层，以 及支持 Entity Framework 的数据提供者 (provider)，让数据访问的工作得以顺利与完整的进行。<br /><div class="spctrl"></div>　　(1) 概念层：负责向上的对象与属性显露与访问。<br /><div class="spctrl"></div>　　(2) 对应层：将上方的概念层和底下的储存层的数据结构对应在一起。<br /><div class="spctrl"></div>　　(3) 储存层：依不同数据库与数据结构，而显露出实体的数据结构体，和 Provider 一起，负责实际对数据库的访问和 SQL 的产生。<img src ="http://www.cppblog.com/AthrunOnline/aggbug/88323.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AthrunOnline/" target="_blank">梁乔峰</a> 2009-06-22 21:52 <a href="http://www.cppblog.com/AthrunOnline/archive/2009/06/22/88323.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>面向對象---繼承</title><link>http://www.cppblog.com/AthrunOnline/archive/2009/06/06/86945.html</link><dc:creator>梁乔峰</dc:creator><author>梁乔峰</author><pubDate>Sat, 06 Jun 2009 14:00:00 GMT</pubDate><guid>http://www.cppblog.com/AthrunOnline/archive/2009/06/06/86945.html</guid><wfw:comment>http://www.cppblog.com/AthrunOnline/comments/86945.html</wfw:comment><comments>http://www.cppblog.com/AthrunOnline/archive/2009/06/06/86945.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/AthrunOnline/comments/commentRss/86945.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AthrunOnline/services/trackbacks/86945.html</trackback:ping><description><![CDATA[突然心血來潮寫這篇Blog，因為昨天那個面試雜錦，其實面向對象都不難啊，也不難理解。但是很多人覺得很恐怖，所以我就在這里發表一下，自己對面向對象的理解。先說下面向對象，我最早接觸面向對象是JAVA里的，那時候學校開了JAVA程序設計。因為自己在高中就自學了C語言啦，所以學JAVA的時候沒啥難度。只是在面向對象的時候有一點點卡機的跡象，為啥？第一，自己一直覺得，繼承和對代碼的復制粘貼沒啥區別啊，為什么要弄個繼承出來。第二，多態，啥叫多態，這個跟繼承又有什么關系。。因為書本的例子可以說，打部分都是簡單的，CLASSA繼承與A，然后輸出。。。就這類說明性的代碼，沒錯這類代碼是很容易說明繼承的關系。但是如何令人從理論轉化為實際，有一定的困難。所以真正要感受到這個還是需要多多的敲下代碼，用心去感受一下，才能理解內涵的。第2次接觸面向對象是在大二第一學期，突然心血來潮想學C++為啥？因為無知- -！為什么說因為自己無知呢？那時候我以為，要實現界面編程只有用C++的MFC去實現，為了學VC++而開始學C++。因為之前有個JAVA,C語言這類從C語言派生出來的編程語系所以學C++速度就快上很多。但是也出現了一個問題，甚至是跟自己學過的JAVA有很大沖突，C++支持多繼承，私有繼承，等這類繼承。所以一開始有點蒙，而已C++還有一個析構函數。C/C++被人罵的最多的，就是它的內存泄露。什么叫內存泄露,我給它的定義是：沒有在適當的時候釋放適當的內存空間。第三次接觸面向對象是C#大二下學期。那時候Net 2.0剛出不是很久。。因為我看過資料，知道2.0比1.1有跨度更新，所以自己那時候決定從2.0入手，二放棄1.1，其實那時候有學C#的沖動的原因是，JAVA太闊了，而且自己大專出生，JAVA在2006年的時候簡直就是遍地開花，什么北大清鳥啊，什么達內啊，什么新東方啊，什么巨匠啊等等這類東西（偷偷說句,其實我蠻鄙視這些培訓的，覺得有些東西是需要靠自己去學的，并不是說在課堂上講下課就可以學到多少，而且我覺得他們的基礎課程和學校的沒太大分別。他們一邊打著鄙視高校教育的時候，一邊做著高校所做的事，所以我覺得比較返感。至于他們的高級課程，我倒是沒有了解，或許有一定的效果，或許而已。。。這個話題就不說下去了，免得人家拍磚）這個到和JAVA差別不算太大。我之所以轉投C#陣型，其實是被開源嚇的，為啥？開源太闊了，學完java基礎學JSP，學完JSP學SSH，學到這里，才發現自己已經浪費了1年多的時間，還沒有入門，打擊啊。讓后被C#的事件模型吸引，跟著開始C#生涯。開始學C#我可是老老實實從基礎學起的呢，畢竟那時候已經決定跟著C#混飯吃了，基礎很重要。<br />      體驗繼承的好處的，你需要學習多一樣東西，那樣東西叫多態。至于多態，等我那天又再心學來潮再寫。<br /><br />C#里的繼承是可以分為3種的（我自己分的），第一種，實體繼承，第二種虛繼承，第三種接口繼承。有些書籍是這樣分的:實現繼承，接口繼承。<br /><strong>實體繼承：</strong>這個是我們經常用的，基類有自己的功能。并允許部分功能被子類掩蓋，也是我們經常看到的繼承。<br /><br /><strong>虛繼承</strong>：這個類是我自己區別出來的，因為這個虛繼承是介乎與實體繼承和接口繼承之間，虛繼承是指基類之生命了方法，但這類方法沒有任何實體操作，所有實體操作都必須由子類實現，并且子類都必須事先虛基類的每一個方法。<br /><br /><strong>接口繼承：</strong>只繼承函數簽名，沒有繼承任何實現代碼.<br /><br />       我打個比喻，實體繼承可以比喻為一個國家，虛繼承就是類似歐盟這樣的組織，接口繼承就是聯合國。國家是有一定職能的，并且他又行駛這些職能的武力支持，這類職能就是實體繼承的方法。虛繼承，就是你加入了這個組織，你就必須要遵守這些制度。但是歐盟是沒有實體的，也就是沒有職能武力支持，它依靠的是實體子類（加入歐盟的國家）的武力支持。接口繼承，這個聯合國比喻最正確不過。就個名字，什么某些國家掛著它名字出去為非作歹都沒問題。唯一有用的就是他的名字，但是有時候你又不能少了這個名字。<br /><br />        在C#里不支持多繼承，這個不支持多繼承是限制在實體繼承和虛繼承的基礎上的，根據設計C#那個牛人的意思，多繼承所產生的代碼污染代價比繼承來的要大，所以他選擇不支持多繼承，但是需要用到多繼承的情況下，他引入了一個概念，接口。實體繼承只能是一個，接口可以是好多個，就好比如，某個公司只是屬于某個行業，但是它卻擁有很多個榮譽稱號。<br /><br />        上面的分類，只是用來方便我們在什么時候使用什么樣的繼承。<br /><br />理解完繼承的分類，我就開始介紹繼承的組成，<br /><br />虛方法：帶有virtual基類函數（方法）聲明，子類使用override修飾。在C#中的虛函數（方法）的概念和標準OOP是一致的，可以在子類中重寫虛函數。在調用方法時，會調用對象類型的合適方法。 因為在C#里面默認情況下都不是虛擬的，但是JAVA在默認情況下是虛擬的。所以必須顯式地聲明為virtual才是虛的（構造函數除外）。關于虛方法上C#和C++是一致的。但是C#子類重寫時候需要加上override修飾。<br /><br />隱藏方法：當沒有把基類的方法聲明為虛方法的時候，但是派生類又用到了跟基類方法完全相同的名字的方法（不滿足重載的方法），在C#里我們使用關鍵字new來聲明，則表示我們要隱藏一個基類的方法。<br /><br />當我們沒有使用new，也沒有使用virtual-override的時候，編譯器會隱式地給我們的代碼加上new，并提示一個警告，所以在編寫穩定代碼的時候，少用默認是個比較好的習慣，至少我覺得這個習慣很好。雖然C#現在沒有夸平臺的概念，但是在C++等其他應用的時候，不一樣的平臺就有不一樣的默認方式。當然在C++里我們常用宏來解決這個夸平臺的。跟那個默認值沒有關系，我只是舉例，舉些不確定100%恰當，但是又容易幫助人理解的例子。<br /><br />       例如在我們自己開發服務器端控件件的時候，我們經常用到base 關鍵字的，就是調用基類方法去操作，主要作用是區分重新方法和基類方法。<br /><br />抽象類;其實就是我上面說的虛基類。有一個比較明顯的特征，有關鍵字abstract因為抽象類和，抽象方法都是沒有具體代碼的，他們的實現具體代碼是依靠子類去實現，例如，有一個基類動物，這個動物是虛基類來的，所有動物我們都讓它具備了行走的方法，讓后人這個子類繼承于動物，老虎這個子類也是繼承于動物，人這個子類的行走方式是用2條腿的，老虎是用4條腿，這樣做的好處就是起到抽象限制作用。我又來一個比如，我給動物下一個定義，你怎么下？最簡單噶，會自己動的物體。就叫動物。好這樣我就定義好了動物是會動的，至于怎么動，是用手動，還是用腳去動，還是用身體去動，沒有沒有細節去區分，只需要知道它動了就行，這個動就是抽象。<br /><br />接口：接口這個東西雖然沒限制你繼承多少個？但是繼承了接口，證明這個類就會執行某些函數。接口是不能實現實體化的，也就是說她沒有溝造函數，接口只是一個契約，例如你加入某某協會，協會的契約是你需要交會費，同時我們承認你是我們協會。你可以得到協會的內部資料。例如我們熟悉的Dispose（）方法，這個方法和C++里的析構函數差不多，用于清理的，它實現了接口IDisposable，如果你有一個類加入了IDisposable協會，那么你將得到權威的Dispose（）方法的承認，具有IDisposable會員的合法資格。你加入了聯合國，并且依照聯合國的武力條例，那么你將得到聯合國授權你是正義的。<br /><br />接口就是給你一個“借口”可以光明正大地去“侮辱（污染）”人家。（掛著聯合國名字光明正大的去干澀它國內政。）<br /><br /><br />繼承的重點就講完了。至于那些訪問規則就是靠背的，上面那些才是應用繼承的細節額。體現了如何抽象類，如何使用光明正大的污染代碼等一些使用繼承的模糊信息。我沒有參照任何資料去寫這篇文章的，那么講錯了，歡迎大家指出<br /><br /><img src ="http://www.cppblog.com/AthrunOnline/aggbug/86945.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AthrunOnline/" target="_blank">梁乔峰</a> 2009-06-06 22:00 <a href="http://www.cppblog.com/AthrunOnline/archive/2009/06/06/86945.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>面試雜錦</title><link>http://www.cppblog.com/AthrunOnline/archive/2009/06/05/86839.html</link><dc:creator>梁乔峰</dc:creator><author>梁乔峰</author><pubDate>Fri, 05 Jun 2009 04:31:00 GMT</pubDate><guid>http://www.cppblog.com/AthrunOnline/archive/2009/06/05/86839.html</guid><wfw:comment>http://www.cppblog.com/AthrunOnline/comments/86839.html</wfw:comment><comments>http://www.cppblog.com/AthrunOnline/archive/2009/06/05/86839.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/AthrunOnline/comments/commentRss/86839.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AthrunOnline/services/trackbacks/86839.html</trackback:ping><description><![CDATA[今天在Q群里看到有人發表面試時候的題目，看了一下，所以順手在這里發表一下看法，包括一些題目；<br /><br />第一類繼承類，<br />有以下C#代碼
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> System;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> A<br /><img id="Codehighlighter1_22_82_Open_Image" onclick="this.style.display='none'; Codehighlighter1_22_82_Open_Text.style.display='none'; Codehighlighter1_22_82_Closed_Image.style.display='inline'; Codehighlighter1_22_82_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_22_82_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_22_82_Closed_Text.style.display='none'; Codehighlighter1_22_82_Open_Image.style.display='inline'; Codehighlighter1_22_82_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_22_82_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_22_82_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> A()<br /><img id="Codehighlighter1_37_50_Open_Image" onclick="this.style.display='none'; Codehighlighter1_37_50_Open_Text.style.display='none'; Codehighlighter1_37_50_Closed_Image.style.display='inline'; Codehighlighter1_37_50_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_37_50_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_37_50_Closed_Text.style.display='none'; Codehighlighter1_37_50_Open_Image.style.display='inline'; Codehighlighter1_37_50_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_37_50_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_37_50_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        test();<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_79_80_Open_Image" onclick="this.style.display='none'; Codehighlighter1_79_80_Open_Text.style.display='none'; Codehighlighter1_79_80_Closed_Image.style.display='inline'; Codehighlighter1_79_80_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_79_80_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_79_80_Closed_Text.style.display='none'; Codehighlighter1_79_80_Open_Image.style.display='inline'; Codehighlighter1_79_80_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">virtual</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> test()</span><span id="Codehighlighter1_79_80_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_79_80_Open_Text"><span style="COLOR: #000000">{}</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> B:A<br /><img id="Codehighlighter1_94_269_Open_Image" onclick="this.style.display='none'; Codehighlighter1_94_269_Open_Text.style.display='none'; Codehighlighter1_94_269_Closed_Image.style.display='inline'; Codehighlighter1_94_269_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_94_269_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_94_269_Closed_Text.style.display='none'; Codehighlighter1_94_269_Open_Image.style.display='inline'; Codehighlighter1_94_269_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_94_269_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_94_269_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> x</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> y;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> B()<br /><img id="Codehighlighter1_127_138_Open_Image" onclick="this.style.display='none'; Codehighlighter1_127_138_Open_Text.style.display='none'; Codehighlighter1_127_138_Closed_Image.style.display='inline'; Codehighlighter1_127_138_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_127_138_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_127_138_Closed_Text.style.display='none'; Codehighlighter1_127_138_Open_Image.style.display='inline'; Codehighlighter1_127_138_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_127_138_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_127_138_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        y</span><span style="COLOR: #000000">=-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">override</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> test()<br /><img id="Codehighlighter1_170_213_Open_Image" onclick="this.style.display='none'; Codehighlighter1_170_213_Open_Text.style.display='none'; Codehighlighter1_170_213_Closed_Image.style.display='inline'; Codehighlighter1_170_213_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_170_213_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_170_213_Closed_Text.style.display='none'; Codehighlighter1_170_213_Open_Image.style.display='inline'; Codehighlighter1_170_213_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_170_213_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_170_213_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        Console.WriteLine(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">x={0},y={1}</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,x,y);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> Main(</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">[] args)<br /><img id="Codehighlighter1_249_267_Open_Image" onclick="this.style.display='none'; Codehighlighter1_249_267_Open_Text.style.display='none'; Codehighlighter1_249_267_Closed_Image.style.display='inline'; Codehighlighter1_249_267_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_249_267_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_249_267_Closed_Text.style.display='none'; Codehighlighter1_249_267_Open_Image.style.display='inline'; Codehighlighter1_249_267_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_249_267_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_249_267_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        B b</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> B();<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><br />這類是一些很基礎的題目主要考察的是對面向對象的了解，，<br />首先我們要了解，繼承的時候，類的聲明，初始化。子類的聲明，內部都會先聲明父類。這里我們可以根據父親才有孩子的思想去記憶，沒有父親，哪里來孩子呢，<br /><br />上面的程序父類的構造函數是調用子類的TEST()方法，我們看一下TEST方法<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">Console.WriteLine(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">x={0},y={1}</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,x,y);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span></div>這里是在控制臺輸出X,Y的值，C#是先初始化A讓后在初始化B，在初始化A的時候調用了子類的TEST方法，子類的TEST方法在B沒有初始化的時候Y是沒有給定值的，在沒有給定值的時候INT類型CLR會自動初始一個0到 Y里面去，所以輸出的結果將會是1，0，<br /><br />這道題目涉及到了繼承于多態。不過都是很基礎的，但是對于新手，或者不是正規系統地學習過C#的人來說。。就會犯迷糊了。1,0如何出來的。。甚至有人會認為是1，-1，這樣認為的原因是，覺得先初始話B類，在初始化A類。我 不知道那類語言是這樣初始化的，但感覺這樣想法本來就不符合人類的習慣；明顯的：我媽媽生我姐姐的時候，我幫媽媽燒水呢？<br /><br />Q群的面試第二道邏輯題；<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">7</span><span style="COLOR: #000000">. 某一密码仅使用K、L、M、N、O共5个字母，密码中的单词从左向右排列，密码单词必须遵循如下规则：<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />（</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">） 密码单词的最小长度是两个字母，可以相同，也可以不同<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />（</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">） K不可能是单词的第一个字母<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />（</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">） 如果L出现，则出现次数不止一次<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />（</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">） M不能使最后一个也不能是倒数第二个字母<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />（</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">） K出现，则N就一定出现<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />（</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">） O如果是最后一个字母，则L一定出现<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />问题一：下列哪一个字母可以放在LO中的O后面，形成一个3个字母的密码单词？<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />A) K B)L C) M D) N<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />问题二：如果能得到的字母是K、L、M，那么能够形成的两个字母长的密码单词的总数是多少？<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />A)1个 B)3个 C)6个 D）9个<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />问题三：下列哪一个是单词密码？<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />A) KLLN B) LOML C) MLLO D)NMKO<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span></div><br />這個邏輯題目其實不難的，只要是做程序的，或者可以說是，有過代碼經歷，或者自己設計過算法的人都會做。但是對于剛出校門的學生，這道題目。。。對30%左右的人是有難度的。。。。他們會很執著的想，啥是密碼單詞。<br /><br />上面的1-6是形成密碼單詞的條件，問題其實就是在這6個條件下得到的結果，<br /><br />問題一：答案是B，為什么是B？因為條件（3）L不只出現1次，根據題目一個3個字母的密碼單詞，LO占了2個，最后一個字母必定是需要重復出現的L<br /><br />問題二：答案是A，為什么是1個？第一，根據條件（5），K絕對不會出現，因為問題里沒有N，那么剩下L，M，LM組合的2個字母單詞總個數是4個，分別是LM,LL,ML,MM；根據（3）L不只出現1次，所以排除LM,ML，根據（4）M不能出現在最后一個字母排除MM，最后只剩下一個LL。<br /><br />問題三：這個問題是考察所有條件的混合應用，K不能開頭，排除A， （4）M不能使最后一个也不能是倒数第二个字母，排除B<br />（<span style="COLOR: #000000">6</span><span style="COLOR: #000000">） O如果是最后一个字母，则L一定出现，排除D，剩下的只有C了，所以答案是C<br /></span><br /><br />雖然我不知道Q群里那個仁兄到底面試啥公司。。。但是發出來的題目。。。沒啥難度啊，只要是有心從事軟件開發的，應該都不難，從公司的角度，面試，筆試，機試，目標都是考察個人能力是否適合這份工作，這2個題目，我覺得靠的應該是。。。應屆生。。<br /><img src ="http://www.cppblog.com/AthrunOnline/aggbug/86839.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AthrunOnline/" target="_blank">梁乔峰</a> 2009-06-05 12:31 <a href="http://www.cppblog.com/AthrunOnline/archive/2009/06/05/86839.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自定义审核流程(二)</title><link>http://www.cppblog.com/AthrunOnline/archive/2009/05/09/82386.html</link><dc:creator>梁乔峰</dc:creator><author>梁乔峰</author><pubDate>Sat, 09 May 2009 07:37:00 GMT</pubDate><guid>http://www.cppblog.com/AthrunOnline/archive/2009/05/09/82386.html</guid><wfw:comment>http://www.cppblog.com/AthrunOnline/comments/82386.html</wfw:comment><comments>http://www.cppblog.com/AthrunOnline/archive/2009/05/09/82386.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/AthrunOnline/comments/commentRss/82386.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AthrunOnline/services/trackbacks/82386.html</trackback:ping><description><![CDATA[<p>执行审核上则是每处理一个环节,就插入一个环节的信息.<br /><br /><br />我个人认为实现审核的代码使用存储过程去实现要比用C#代码去实现要好,至于用事务处理感觉还是差点,因为如果一个系统的事务处理过多,会造成处理缓慢,而用C#代码去实现,则需要进行多次的查询数据库,操作过程也比较复杂..所以我觉得还是用存储过程去实现是最理想的.<br /><br /><br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #008080"> 1</span>
				<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">Create</span>
				<span style="COLOR: #000000">  </span>
				<span style="COLOR: #0000ff">procedure</span>
				<span style="COLOR: #000000"> ExecFlowAuditPass<br /></span>
				<span style="COLOR: #008080"> 2</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />(<br /></span>
				<span style="COLOR: #008080"> 3</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #008000">@AuditMainID</span>
				<span style="COLOR: #000000"> </span>
				<span style="FONT-WEIGHT: bold; COLOR: #000000">int</span>
				<span style="COLOR: #000000">,<br /></span>
				<span style="COLOR: #008080"> 4</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #008000">@UserID</span>
				<span style="COLOR: #000000"> </span>
				<span style="FONT-WEIGHT: bold; COLOR: #000000">varchar</span>
				<span style="COLOR: #000000">(</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">100</span>
				<span style="COLOR: #000000">),<br /></span>
				<span style="COLOR: #008080"> 5</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #008000">@AuditOpinion</span>
				<span style="COLOR: #000000"> </span>
				<span style="FONT-WEIGHT: bold; COLOR: #000000">ntext</span>
				<span style="COLOR: #000000">,<br /></span>
				<span style="COLOR: #008080"> 6</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #008000">@Auditstatus</span>
				<span style="COLOR: #000000"> </span>
				<span style="FONT-WEIGHT: bold; COLOR: #000000">int</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080"> 7</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />)<br /></span>
				<span style="COLOR: #008080"> 8</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">As</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080"> 9</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #008080">--</span>
				<span style="COLOR: #008080">获取最后审核的节点</span>
				<span style="COLOR: #008080">
						<br />
				</span>
				<span style="COLOR: #008080">10</span>
				<span style="COLOR: #008080">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">declare</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@posid</span>
				<span style="COLOR: #000000"> </span>
				<span style="FONT-WEIGHT: bold; COLOR: #000000">int</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">11</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">select</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@posid</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #ff00ff">max</span>
				<span style="COLOR: #000000">(Sequence) </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> 审核子表 </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> MainID</span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@AuditMainID</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">12</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #008080">--</span>
				<span style="COLOR: #008080">获取最大审核的节点</span>
				<span style="COLOR: #008080">
						<br />
				</span>
				<span style="COLOR: #008080">13</span>
				<span style="COLOR: #008080">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">declare</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@maxposid</span>
				<span style="COLOR: #000000"> </span>
				<span style="FONT-WEIGHT: bold; COLOR: #000000">int</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">14</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">select</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@maxposid</span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #ff00ff">max</span>
				<span style="COLOR: #000000">(Sequence) </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> 流程子表 </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> MainID</span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@AuditMainID</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">15</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #008080">--</span>
				<span style="COLOR: #008080">获取将审核节点角色资料</span>
				<span style="COLOR: #008080">
						<br />
				</span>
				<span style="COLOR: #008080">16</span>
				<span style="COLOR: #008080">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">declare</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@UserGroupID</span>
				<span style="COLOR: #000000"> </span>
				<span style="FONT-WEIGHT: bold; COLOR: #000000">int</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">17</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">select</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@UserGroupID</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #000000"> UserGroupID </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> 审核子表 </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> MainID</span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@AuditMainID</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">and</span>
				<span style="COLOR: #000000"> Sequence</span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #008000">@posid</span>
				<span style="COLOR: #808080">+</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">1</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">18</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #008080">--</span>
				<span style="COLOR: #008080">角色不符</span>
				<span style="COLOR: #008080">
						<br />
				</span>
				<span style="COLOR: #008080">19</span>
				<span style="COLOR: #008080">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">if</span>
				<span style="COLOR: #000000"> (</span>
				<span style="COLOR: #0000ff">select</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #ff00ff">count</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #808080">*</span>
				<span style="COLOR: #000000">) </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> 员工表 </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> 员工ID</span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #008000">@UserID</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">and</span>
				<span style="COLOR: #000000"> 角色ID </span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@UserGroupID</span>
				<span style="COLOR: #000000">)</span>
				<span style="COLOR: #808080">=</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">0</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">20</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">begin</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">21</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">select</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">*</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> 审核子表 </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000">  MainID</span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@AuditMainID</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">22</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">print</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">-</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">1</span>
				<span style="COLOR: #000000">;<br /></span>
				<span style="COLOR: #008080">23</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">return</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">-</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">1</span>
				<span style="COLOR: #000000">;<br /></span>
				<span style="COLOR: #008080">24</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">end</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">25</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #008080">--</span>
				<span style="COLOR: #008080">角色符合执行</span>
				<span style="COLOR: #008080">
						<br />
				</span>
				<span style="COLOR: #008080">26</span>
				<span style="COLOR: #008080">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">if</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@Auditstatus</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">=</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">1</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">27</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">begin</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">28</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />insert </span>
				<span style="COLOR: #0000ff">into</span>
				<span style="COLOR: #000000"> 流程子表(MainID,AuditOpinion,Auditstatus,Sequence,AuditID,CreateDate,角色ID) </span>
				<span style="COLOR: #0000ff">values</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #008000">@AuditMainID</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #008000">@AuditOpinion</span>
				<span style="COLOR: #000000">,</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">1</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #008000">@posid</span>
				<span style="COLOR: #808080">+</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">1</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #008000">@UserID</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #ff00ff">getdate</span>
				<span style="COLOR: #000000">(),</span>
				<span style="COLOR: #008000">@UserGroupID</span>
				<span style="COLOR: #000000">)<br /></span>
				<span style="COLOR: #008080">29</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />            </span>
				<span style="COLOR: #0000ff">if</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@posid</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">+</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">1</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@maxposid</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">30</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />             </span>
				<span style="COLOR: #0000ff">begin</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">31</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                  </span>
				<span style="COLOR: #0000ff">update</span>
				<span style="COLOR: #000000"> 审核主表 </span>
				<span style="COLOR: #0000ff">set</span>
				<span style="COLOR: #000000"> Auditstatus </span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">3</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #ff0000">[</span>
				<span style="COLOR: #ff0000">ID</span>
				<span style="COLOR: #ff0000">]</span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #008000">@AuditMainID</span>
				<span style="COLOR: #000000"> <br /></span>
				<span style="COLOR: #008080">32</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />             </span>
				<span style="COLOR: #0000ff">end</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">33</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">end</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">34</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">else</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">35</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">begin</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">36</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                   insert </span>
				<span style="COLOR: #0000ff">into</span>
				<span style="COLOR: #000000"> 流程子表(MainID,AuditOpinion,Auditstatus,Sequence,AuditID,CreateDate,角色ID) </span>
				<span style="COLOR: #0000ff">values</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #008000">@AuditMainID</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #008000">@AuditOpinion</span>
				<span style="COLOR: #000000">,</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">0</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #008000">@posid</span>
				<span style="COLOR: #808080">+</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">1</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #008000">@UserID</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #ff00ff">getdate</span>
				<span style="COLOR: #000000">(),</span>
				<span style="COLOR: #008000">@UserGroupID</span>
				<span style="COLOR: #000000">)<br /></span>
				<span style="COLOR: #008080">37</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                 </span>
				<span style="COLOR: #0000ff">update</span>
				<span style="COLOR: #000000"> 审核主表 </span>
				<span style="COLOR: #0000ff">set</span>
				<span style="COLOR: #000000"> Auditstatus </span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">2</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #ff0000">[</span>
				<span style="COLOR: #ff0000">ID</span>
				<span style="COLOR: #ff0000">]</span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #008000">@AuditMainID</span>
				<span style="COLOR: #000000"> <br /></span>
				<span style="COLOR: #008080">38</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">end</span>
		</div>
		<p>这个就是执行审核的存储过程,<br /><br />现在主任C1打开审核系统,根据需要,他只能看到它能看的审核.<br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #008080"> 1</span>
				<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">Create</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">procedure</span>
				<span style="COLOR: #000000"> GetListAudit<br /></span>
				<span style="COLOR: #008080"> 2</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />(<br /></span>
				<span style="COLOR: #008080"> 3</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /> </span>
				<span style="COLOR: #008000">@userid</span>
				<span style="COLOR: #000000"> </span>
				<span style="FONT-WEIGHT: bold; COLOR: #000000">varchar</span>
				<span style="COLOR: #000000">(</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">100</span>
				<span style="COLOR: #000000">),<br /></span>
				<span style="COLOR: #008080"> 4</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /> </span>
				<span style="COLOR: #008000">@statusid</span>
				<span style="COLOR: #000000"> </span>
				<span style="FONT-WEIGHT: bold; COLOR: #000000">int</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008080">--</span>
				<span style="COLOR: #008080">0待审核,1已审核,2历史记录</span>
				<span style="COLOR: #008080">
						<br />
				</span>
				<span style="COLOR: #008080"> 5</span>
				<span style="COLOR: #008080">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">)<br /></span>
				<span style="COLOR: #008080"> 6</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="COLOR: #008080"> 7</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">AS</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080"> 8</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">if</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@statusid</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">=</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">1</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080"> 9</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">begin</span>
				<span style="COLOR: #000000"> <br /></span>
				<span style="COLOR: #008080">10</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">select</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">*</span>
				<span style="COLOR: #000000"> <br /></span>
				<span style="COLOR: #008080">11</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> 审核主表 <br /></span>
				<span style="COLOR: #008080">12</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #ff0000">[</span>
				<span style="COLOR: #ff0000">ID</span>
				<span style="COLOR: #ff0000">]</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">in</span>
				<span style="COLOR: #000000"> <br /></span>
				<span style="COLOR: #008080">13</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  (<br /></span>
				<span style="COLOR: #008080">14</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">Select</span>
				<span style="COLOR: #000000"> MainID </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> 审核子表 <br /></span>
				<span style="COLOR: #008080">15</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> AuditID </span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@userid</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">16</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />   )<br /></span>
				<span style="COLOR: #008080">17</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">end</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">18</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">if</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@statusid</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">=</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">0</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">19</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">begin</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">20</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">select</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">*</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">21</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> 审核主表 <br /></span>
				<span style="COLOR: #008080">22</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #ff0000">[</span>
				<span style="COLOR: #ff0000">ID</span>
				<span style="COLOR: #ff0000">]</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">not</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">in</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">23</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  (<br /></span>
				<span style="COLOR: #008080">24</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />     </span>
				<span style="COLOR: #0000ff">select</span>
				<span style="COLOR: #000000"> MainID </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> 审核子表 <br /></span>
				<span style="COLOR: #008080">25</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />      </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> AuditID </span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@userid</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">26</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  )<br /></span>
				<span style="COLOR: #008080">27</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #808080">and</span>
				<span style="COLOR: #000000"> ProcessID </span>
				<span style="COLOR: #808080">in</span>
				<span style="COLOR: #000000"> <br /></span>
				<span style="COLOR: #008080">28</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  (<br /></span>
				<span style="COLOR: #008080">29</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">Select</span>
				<span style="COLOR: #000000"> MainID </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> 流程子表<br /></span>
				<span style="COLOR: #008080">30</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />     </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> UserGroupID </span>
				<span style="COLOR: #808080">in</span>
				<span style="COLOR: #000000"> <br /></span>
				<span style="COLOR: #008080">31</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />     (<br /></span>
				<span style="COLOR: #008080">32</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />      </span>
				<span style="COLOR: #0000ff">select</span>
				<span style="COLOR: #000000"> 角色ID </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> 员工表<br /></span>
				<span style="COLOR: #008080">33</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />       </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> 员工ID</span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #008000">@userid</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">34</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />      )<br /></span>
				<span style="COLOR: #008080">35</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  )<br /></span>
				<span style="COLOR: #008080">36</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">end</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">37</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">if</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008000">@statusid</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">=</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">2</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">38</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">begin</span>
				<span style="COLOR: #000000"> <br /></span>
				<span style="COLOR: #008080">39</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">select</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">*</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">40</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> 审核主表 <br /></span>
				<span style="COLOR: #008080">41</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> Auditstatus </span>
				<span style="COLOR: #808080">in</span>
				<span style="COLOR: #000000">(</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">2</span>
				<span style="COLOR: #000000">,</span>
				<span style="FONT-WEIGHT: bold; COLOR: #800000">3</span>
				<span style="COLOR: #000000">)<br /></span>
				<span style="COLOR: #008080">42</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #808080">and</span>
				<span style="COLOR: #000000"> ProcessID </span>
				<span style="COLOR: #808080">in</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">43</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  (<br /></span>
				<span style="COLOR: #008080">44</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">Select</span>
				<span style="COLOR: #000000"> MainID </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> 流程子表<br /></span>
				<span style="COLOR: #008080">45</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />     </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> UserGroupID </span>
				<span style="COLOR: #808080">in</span>
				<span style="COLOR: #000000"> <br /></span>
				<span style="COLOR: #008080">46</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />     (<br /></span>
				<span style="COLOR: #008080">47</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />      </span>
				<span style="COLOR: #0000ff">select</span>
				<span style="COLOR: #000000"> 角色ID </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> 员工表<br /></span>
				<span style="COLOR: #008080">48</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />       </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> 员工ID</span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #008000">@userid</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">49</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />      )<br /></span>
				<span style="COLOR: #008080">50</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  )<br /></span>
				<span style="COLOR: #008080">51</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">end</span>
		</div>
		<p>上面的存储过程还可以增加未提交的列表<br />只需要一个存储过程就实现了,未提交,已经审核,未审核,和历史审核记录,<br />并将这些不同的状态定义为一个枚举类型.<br /><br />我们实现了,审核操作,和查看审核信息,还缺少什么呢?还缺少一个文件跟踪功能,就是审核流程走到哪个角色的功能<br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #008080"> 1</span>
				<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">Create</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">procedure</span>
				<span style="COLOR: #000000"> GetListAuditTrail<br /></span>
				<span style="COLOR: #008080"> 2</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />(<br /></span>
				<span style="COLOR: #008080"> 3</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #008000">@AuditMainID</span>
				<span style="COLOR: #000000"> </span>
				<span style="FONT-WEIGHT: bold; COLOR: #000000">int</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #008080">--</span>
				<span style="COLOR: #008080">审核单号</span>
				<span style="COLOR: #008080">
						<br />
				</span>
				<span style="COLOR: #008080"> 4</span>
				<span style="COLOR: #008080">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">)<br /></span>
				<span style="COLOR: #008080"> 5</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">AS</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080"> 6</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="COLOR: #008080"> 7</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">Select</span>
				<span style="COLOR: #000000"> a.</span>
				<span style="COLOR: #808080">*</span>
				<span style="COLOR: #000000"> b.AuditID,b.CreateDate Dates<br /></span>
				<span style="COLOR: #008080"> 8</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> 流程子表 a </span>
				<span style="COLOR: #ff00ff">left</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">join</span>
				<span style="COLOR: #000000"> 审核子表 b<br /></span>
				<span style="COLOR: #008080"> 9</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">on</span>
				<span style="COLOR: #000000"> a.Sequence </span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #000000"> b.Sequence<br /></span>
				<span style="COLOR: #008080">10</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> b.MainID</span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #008000">@AuditMainID</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #808080">and</span>
				<span style="COLOR: #000000"> <br /></span>
				<span style="COLOR: #008080">11</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />   a.MainID </span>
				<span style="COLOR: #808080">in</span>
				<span style="COLOR: #000000"> (</span>
				<span style="COLOR: #0000ff">select</span>
				<span style="COLOR: #000000"> ProcessID </span>
				<span style="COLOR: #0000ff">from</span>
				<span style="COLOR: #000000"> 审核主表 </span>
				<span style="COLOR: #0000ff">where</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #ff0000">[</span>
				<span style="COLOR: #ff0000">ID</span>
				<span style="COLOR: #ff0000">]</span>
				<span style="COLOR: #808080">=</span>
				<span style="COLOR: #008000">@AuditMainID</span>
				<span style="COLOR: #000000"> )</span>
		</div>
		<p>
				<br />从安全性来说,我觉得应该进行下用户权限检验的.<br />其实我个人写存储过程有个习惯的,如果这个存储过程是返回一个列表的,我喜欢用GetList为开头,如果执行性存储过程则喜欢Exec,如果只是返回一个值的用则是GetOnly开头,</p>
		<p>
				<a href="/AthrunOnline/">明鏡臺</a>
		</p><img src ="http://www.cppblog.com/AthrunOnline/aggbug/82386.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AthrunOnline/" target="_blank">梁乔峰</a> 2009-05-09 15:37 <a href="http://www.cppblog.com/AthrunOnline/archive/2009/05/09/82386.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#文件上传</title><link>http://www.cppblog.com/AthrunOnline/archive/2009/05/09/82358.html</link><dc:creator>梁乔峰</dc:creator><author>梁乔峰</author><pubDate>Sat, 09 May 2009 03:29:00 GMT</pubDate><guid>http://www.cppblog.com/AthrunOnline/archive/2009/05/09/82358.html</guid><wfw:comment>http://www.cppblog.com/AthrunOnline/comments/82358.html</wfw:comment><comments>http://www.cppblog.com/AthrunOnline/archive/2009/05/09/82358.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/AthrunOnline/comments/commentRss/82358.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AthrunOnline/services/trackbacks/82358.html</trackback:ping><description><![CDATA[<p>最近在Q群里,有几个人问到的文件上传,大多数是问,如何判断,如何获取文件大小之类的,本文首先对FileUpload控件作出解析,</p>
		<p>一般文件上传页面都会作为一个独立的页面处理,因为需要修改from标记的传输方式,尤其是使用FileUpload里的PostedFile属性的时候,必须要加上enctype="multipart/form-data".否则不能正确的获取到PostedFile属性,</p>
		<p>而PostedFile属性里,封装了几个很有用的属性,分别是:ContentType、ContentLength、FileName、InputStream.</p>
		<p>ContentType 主要获取文件的类型，而不是文件的后聚名，在一定程度上，可以起来类型判定的作用，</p>
		<p>ContentLength 获取文件大小。</p>
		<p>FileName 文件名字。</p>
		<p>InputStream 以流方式输入。</p>
		<p>这个InputStream其实是个很有用的东西，很多人想问，如果我要在上传的时候修改图片大小，帮图片加水印，这些加工工序，InputStream可以帮到你在上传文件的同时，作出上操作</p>
		<p>下面是我一个例子的代码贴，主要作用是上传图片</p>
		<p>ASPX页面</p>
		<p> </p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">table </span>
				<span style="COLOR: #ff0000">width</span>
				<span style="COLOR: #0000ff">="340px"</span>
				<span style="COLOR: #ff0000"> height</span>
				<span style="COLOR: #0000ff">="180px"</span>
				<span style="COLOR: #ff0000"> style</span>
				<span style="COLOR: #0000ff">="margin: 0px; padding: 0px"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />            </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">tr</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">td </span>
				<span style="COLOR: #ff0000">class</span>
				<span style="COLOR: #0000ff">="td3"</span>
				<span style="COLOR: #ff0000"> width</span>
				<span style="COLOR: #0000ff">="20px"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                    </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">asp:FileUpload </span>
				<span style="COLOR: #ff0000">ID</span>
				<span style="COLOR: #0000ff">="PhotoFileUpload"</span>
				<span style="COLOR: #ff0000"> runat</span>
				<span style="COLOR: #0000ff">="server"</span>
				<span style="COLOR: #ff0000"> </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                    </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">asp:Button </span>
				<span style="COLOR: #ff0000">ID</span>
				<span style="COLOR: #0000ff">="UpImageBtn"</span>
				<span style="COLOR: #ff0000"> runat</span>
				<span style="COLOR: #0000ff">="server"</span>
				<span style="COLOR: #ff0000"> Text</span>
				<span style="COLOR: #0000ff">="上传图片"</span>
				<span style="COLOR: #ff0000"> OnClick</span>
				<span style="COLOR: #0000ff">="UpImageBtn_Click"</span>
				<span style="COLOR: #ff0000"> </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">td</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />            </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">tr</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />            </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">tr</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">td </span>
				<span style="COLOR: #ff0000">class</span>
				<span style="COLOR: #0000ff">="td4"</span>
				<span style="COLOR: #ff0000"> height</span>
				<span style="COLOR: #0000ff">="140px"</span>
				<span style="COLOR: #ff0000"> valign</span>
				<span style="COLOR: #0000ff">="top"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                    </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">ul </span>
				<span style="COLOR: #ff0000">style</span>
				<span style="COLOR: #0000ff">="color: mediumslateblue; text-align: left"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                            </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">li</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">本系统只支持200K以内的图片</span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">li</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                            </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">li</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">只支持JPG、GIF、PNG格式</span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">li</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                        </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">ul</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                    </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">asp:Panel </span>
				<span style="COLOR: #ff0000">ID</span>
				<span style="COLOR: #0000ff">="UpLoadedPanel"</span>
				<span style="COLOR: #ff0000"> runat</span>
				<span style="COLOR: #0000ff">="server"</span>
				<span style="COLOR: #ff0000"> Visible</span>
				<span style="COLOR: #0000ff">="false"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                        </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">ul </span>
				<span style="COLOR: #ff0000">style</span>
				<span style="COLOR: #0000ff">="color: Red; text-align: left"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                            </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">li</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">文件位置：</span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">asp:Literal </span>
				<span style="COLOR: #ff0000">ID</span>
				<span style="COLOR: #0000ff">="FilePlaceLi"</span>
				<span style="COLOR: #ff0000"> runat</span>
				<span style="COLOR: #0000ff">="server"</span>
				<span style="COLOR: #0000ff">&gt;&lt;/</span>
				<span style="COLOR: #800000">asp:Literal</span>
				<span style="COLOR: #0000ff">&gt;&lt;/</span>
				<span style="COLOR: #800000">li</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                            </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">li</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">文件类型：</span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">asp:Literal </span>
				<span style="COLOR: #ff0000">ID</span>
				<span style="COLOR: #0000ff">="FileTypeLi"</span>
				<span style="COLOR: #ff0000"> runat</span>
				<span style="COLOR: #0000ff">="server"</span>
				<span style="COLOR: #0000ff">&gt;&lt;/</span>
				<span style="COLOR: #800000">asp:Literal</span>
				<span style="COLOR: #0000ff">&gt;&lt;/</span>
				<span style="COLOR: #800000">li</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                            </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">li</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">文件大小：</span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">asp:Literal </span>
				<span style="COLOR: #ff0000">ID</span>
				<span style="COLOR: #0000ff">="FileLenghtLi"</span>
				<span style="COLOR: #ff0000"> runat</span>
				<span style="COLOR: #0000ff">="server"</span>
				<span style="COLOR: #0000ff">&gt;&lt;/</span>
				<span style="COLOR: #800000">asp:Literal</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">KB</span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">li</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                        </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">ul</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                    </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">asp:Panel</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">td</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />            </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">tr</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />            </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">tr</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">td </span>
				<span style="COLOR: #ff0000">class</span>
				<span style="COLOR: #0000ff">="td3"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                    </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">asp:Label </span>
				<span style="COLOR: #ff0000">ID</span>
				<span style="COLOR: #0000ff">="MessageBoxLab"</span>
				<span style="COLOR: #ff0000"> runat</span>
				<span style="COLOR: #0000ff">="server"</span>
				<span style="COLOR: #0000ff">&gt;&lt;/</span>
				<span style="COLOR: #800000">asp:Label</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                    </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">input </span>
				<span style="COLOR: #ff0000">type</span>
				<span style="COLOR: #0000ff">="button"</span>
				<span style="COLOR: #ff0000"> id</span>
				<span style="COLOR: #0000ff">="ClossWindows"</span>
				<span style="COLOR: #ff0000"> value</span>
				<span style="COLOR: #0000ff">="完成"</span>
				<span style="COLOR: #ff0000"> onclick</span>
				<span style="COLOR: #0000ff">="ThisOk()"</span>
				<span style="COLOR: #ff0000"> </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">td</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />            </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">tr</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />        </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">table</span>
				<span style="COLOR: #0000ff">&gt;</span>
		</div>
		<p> </p>
		<p>CS代码：<br /></p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #008080"> 1</span>
				<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">protected</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">void</span>
				<span style="COLOR: #000000"> UpImageBtn_Click(</span>
				<span style="COLOR: #0000ff">object</span>
				<span style="COLOR: #000000"> sender, EventArgs e)<br /></span>
				<span style="COLOR: #008080"> 2</span>
				<span style="COLOR: #000000">
						<img id="Codehighlighter1_64_2022_Open_Image" onclick="this.style.display='none'; Codehighlighter1_64_2022_Open_Text.style.display='none'; Codehighlighter1_64_2022_Closed_Image.style.display='inline'; Codehighlighter1_64_2022_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_64_2022_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_64_2022_Closed_Text.style.display='none'; Codehighlighter1_64_2022_Open_Image.style.display='inline'; Codehighlighter1_64_2022_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />    </span>
				<span id="Codehighlighter1_64_2022_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.cppblog.com/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_64_2022_Open_Text">
						<span style="COLOR: #000000">{<br /></span>
						<span style="COLOR: #008080"> 3</span>
						<span style="COLOR: #000000">
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
						<span style="COLOR: #0000ff">if</span>
						<span style="COLOR: #000000"> (Page.IsValid)<br /></span>
						<span style="COLOR: #008080"> 4</span>
						<span style="COLOR: #000000">
								<img id="Codehighlighter1_100_2016_Open_Image" onclick="this.style.display='none'; Codehighlighter1_100_2016_Open_Text.style.display='none'; Codehighlighter1_100_2016_Closed_Image.style.display='inline'; Codehighlighter1_100_2016_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_100_2016_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_100_2016_Closed_Text.style.display='none'; Codehighlighter1_100_2016_Open_Image.style.display='inline'; Codehighlighter1_100_2016_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
						<span id="Codehighlighter1_100_2016_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cppblog.com/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_100_2016_Open_Text">
								<span style="COLOR: #000000">{<br /></span>
								<span style="COLOR: #008080"> 5</span>
								<span style="COLOR: #000000">
										<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000"> (PhotoFileUpload.HasFile)<br /></span>
								<span style="COLOR: #008080"> 6</span>
								<span style="COLOR: #000000">
										<img id="Codehighlighter1_155_2006_Open_Image" onclick="this.style.display='none'; Codehighlighter1_155_2006_Open_Text.style.display='none'; Codehighlighter1_155_2006_Closed_Image.style.display='inline'; Codehighlighter1_155_2006_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_155_2006_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_155_2006_Closed_Text.style.display='none'; Codehighlighter1_155_2006_Open_Image.style.display='inline'; Codehighlighter1_155_2006_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span>
								<span id="Codehighlighter1_155_2006_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.cppblog.com/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_155_2006_Open_Text">
										<span style="COLOR: #000000">{<br /></span>
										<span style="COLOR: #008080"> 7</span>
										<span style="COLOR: #000000">
												<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                UpLoadedPanel.Visible </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #0000ff">true</span>
										<span style="COLOR: #000000">;<br /></span>
										<span style="COLOR: #008080"> 8</span>
										<span style="COLOR: #000000">
												<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                FilePlaceLi.Text </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> PhotoFileUpload.PostedFile.FileName;<br /></span>
										<span style="COLOR: #008080"> 9</span>
										<span style="COLOR: #000000">
												<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                FileLenghtLi.Text </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> (PhotoFileUpload.PostedFile.ContentLength </span>
										<span style="COLOR: #000000">/</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">1024</span>
										<span style="COLOR: #000000">).ToString();<br /></span>
										<span style="COLOR: #008080">10</span>
										<span style="COLOR: #000000">
												<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                FileTypeLi.Text </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> PhotoFileUpload.PostedFile.ContentType;<br /></span>
										<span style="COLOR: #008080">11</span>
										<span style="COLOR: #000000">
												<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
										<span style="COLOR: #0000ff">string</span>
										<span style="COLOR: #000000"> fileName </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> PhotoFileUpload.FileName;<br /></span>
										<span style="COLOR: #008080">12</span>
										<span style="COLOR: #000000">
												<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
										<span style="COLOR: #0000ff">string</span>
										<span style="COLOR: #000000"> strExPrentFile </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> fileName.Substring(fileName.LastIndexOf(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">.</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">) </span>
										<span style="COLOR: #000000">+</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">1</span>
										<span style="COLOR: #000000">);<br /></span>
										<span style="COLOR: #008080">13</span>
										<span style="COLOR: #000000">
												<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
										<span style="COLOR: #0000ff">string</span>
										<span style="COLOR: #000000"> strFileType </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> PhotoFileUpload.PostedFile.ContentType;<br /></span>
										<span style="COLOR: #008080">14</span>
										<span style="COLOR: #000000">
												<img id="Codehighlighter1_729_772_Open_Image" onclick="this.style.display='none'; Codehighlighter1_729_772_Open_Text.style.display='none'; Codehighlighter1_729_772_Closed_Image.style.display='inline'; Codehighlighter1_729_772_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
												<img id="Codehighlighter1_729_772_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_729_772_Closed_Text.style.display='none'; Codehighlighter1_729_772_Open_Image.style.display='inline'; Codehighlighter1_729_772_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                </span>
										<span style="COLOR: #0000ff">string</span>
										<span style="COLOR: #000000">[] upExPrentFile </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #0000ff">new</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #0000ff">string</span>
										<span style="COLOR: #000000">[] </span>
										<span id="Codehighlighter1_729_772_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.cppblog.com/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_729_772_Open_Text">
												<span style="COLOR: #000000">{ </span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">image/pjpeg</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">, </span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">image/gif</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">, </span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">image/x-png</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">}</span>
										</span>
										<span style="COLOR: #000000">;<br /></span>
										<span style="COLOR: #008080">15</span>
										<span style="COLOR: #000000">
												<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
										<span style="COLOR: #0000ff">bool</span>
										<span style="COLOR: #000000"> IsUp </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #0000ff">false</span>
										<span style="COLOR: #000000">;<br /></span>
										<span style="COLOR: #008080">16</span>
										<span style="COLOR: #000000">
												<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
										<span style="COLOR: #0000ff">for</span>
										<span style="COLOR: #000000"> (</span>
										<span style="COLOR: #0000ff">int</span>
										<span style="COLOR: #000000"> i </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">0</span>
										<span style="COLOR: #000000">; i </span>
										<span style="COLOR: #000000">&lt;</span>
										<span style="COLOR: #000000"> upExPrentFile.Length; i</span>
										<span style="COLOR: #000000">++</span>
										<span style="COLOR: #000000">)<br /></span>
										<span style="COLOR: #008080">17</span>
										<span style="COLOR: #000000">
												<img id="Codehighlighter1_889_1077_Open_Image" onclick="this.style.display='none'; Codehighlighter1_889_1077_Open_Text.style.display='none'; Codehighlighter1_889_1077_Closed_Image.style.display='inline'; Codehighlighter1_889_1077_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
												<img id="Codehighlighter1_889_1077_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_889_1077_Closed_Text.style.display='none'; Codehighlighter1_889_1077_Open_Image.style.display='inline'; Codehighlighter1_889_1077_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                </span>
										<span id="Codehighlighter1_889_1077_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.cppblog.com/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_889_1077_Open_Text">
												<span style="COLOR: #000000">{<br /></span>
												<span style="COLOR: #008080">18</span>
												<span style="COLOR: #000000">
														<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                    </span>
												<span style="COLOR: #0000ff">if</span>
												<span style="COLOR: #000000"> (strFileType.Trim().ToLower().Equals(upExPrentFile[i].ToLower()))<br /></span>
												<span style="COLOR: #008080">19</span>
												<span style="COLOR: #000000">
														<img id="Codehighlighter1_1000_1059_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1000_1059_Open_Text.style.display='none'; Codehighlighter1_1000_1059_Closed_Image.style.display='inline'; Codehighlighter1_1000_1059_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
														<img id="Codehighlighter1_1000_1059_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1000_1059_Closed_Text.style.display='none'; Codehighlighter1_1000_1059_Open_Image.style.display='inline'; Codehighlighter1_1000_1059_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                    </span>
												<span id="Codehighlighter1_1000_1059_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
														<img src="http://www.cppblog.com/images/dot.gif" />
												</span>
												<span id="Codehighlighter1_1000_1059_Open_Text">
														<span style="COLOR: #000000">{<br /></span>
														<span style="COLOR: #008080">20</span>
														<span style="COLOR: #000000">
																<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                        IsUp </span>
														<span style="COLOR: #000000">=</span>
														<span style="COLOR: #000000"> </span>
														<span style="COLOR: #0000ff">true</span>
														<span style="COLOR: #000000">;<br /></span>
														<span style="COLOR: #008080">21</span>
														<span style="COLOR: #000000">
																<img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />                    }</span>
												</span>
												<span style="COLOR: #000000">
														<br />
												</span>
												<span style="COLOR: #008080">22</span>
												<span style="COLOR: #000000">
														<img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />                }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
										</span>
										<span style="COLOR: #008080">23</span>
										<span style="COLOR: #000000">
												<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
										<span style="COLOR: #0000ff">if</span>
										<span style="COLOR: #000000"> (IsUp)<br /></span>
										<span style="COLOR: #008080">24</span>
										<span style="COLOR: #000000">
												<img id="Codehighlighter1_1121_1883_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1121_1883_Open_Text.style.display='none'; Codehighlighter1_1121_1883_Closed_Image.style.display='inline'; Codehighlighter1_1121_1883_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
												<img id="Codehighlighter1_1121_1883_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1121_1883_Closed_Text.style.display='none'; Codehighlighter1_1121_1883_Open_Image.style.display='inline'; Codehighlighter1_1121_1883_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                </span>
										<span id="Codehighlighter1_1121_1883_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.cppblog.com/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_1121_1883_Open_Text">
												<span style="COLOR: #000000">{<br /></span>
												<span style="COLOR: #008080">25</span>
												<span style="COLOR: #000000">
														<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                    </span>
												<span style="COLOR: #0000ff">string</span>
												<span style="COLOR: #000000"> SavePath </span>
												<span style="COLOR: #000000">=</span>
												<span style="COLOR: #000000"> </span>
												<span style="COLOR: #0000ff">string</span>
												<span style="COLOR: #000000">.Format(</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">../Photo/{0}.{1}</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">, DateTime.Now.ToString(</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">mmhhddss</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">), strExPrentFile);<br /></span>
												<span style="COLOR: #008080">26</span>
												<span style="COLOR: #000000">
														<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
														<br />
												</span>
												<span style="COLOR: #008080">27</span>
												<span style="COLOR: #000000">
														<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
														<br />
												</span>
												<span style="COLOR: #008080">28</span>
												<span style="COLOR: #000000">
														<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                    </span>
												<span style="COLOR: #0000ff">if</span>
												<span style="COLOR: #000000"> ((PhotoFileUpload.PostedFile.ContentLength </span>
												<span style="COLOR: #000000">/</span>
												<span style="COLOR: #000000"> </span>
												<span style="COLOR: #000000">1024</span>
												<span style="COLOR: #000000">) </span>
												<span style="COLOR: #000000">&lt;</span>
												<span style="COLOR: #000000"> </span>
												<span style="COLOR: #000000">200</span>
												<span style="COLOR: #000000">)<br /></span>
												<span style="COLOR: #008080">29</span>
												<span style="COLOR: #000000">
														<img id="Codehighlighter1_1350_1734_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1350_1734_Open_Text.style.display='none'; Codehighlighter1_1350_1734_Closed_Image.style.display='inline'; Codehighlighter1_1350_1734_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
														<img id="Codehighlighter1_1350_1734_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1350_1734_Closed_Text.style.display='none'; Codehighlighter1_1350_1734_Open_Image.style.display='inline'; Codehighlighter1_1350_1734_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                    </span>
												<span id="Codehighlighter1_1350_1734_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
														<img src="http://www.cppblog.com/images/dot.gif" />
												</span>
												<span id="Codehighlighter1_1350_1734_Open_Text">
														<span style="COLOR: #000000">{<br /></span>
														<span style="COLOR: #008080">30</span>
														<span style="COLOR: #000000">
																<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                        </span>
														<span style="COLOR: #0000ff">object</span>
														<span style="COLOR: #000000"> imag </span>
														<span style="COLOR: #000000">=</span>
														<span style="COLOR: #000000"> PhotoFileUpload.PostedFile.InputStream;<br /></span>
														<span style="COLOR: #008080">31</span>
														<span style="COLOR: #000000">
																<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                        ImageSize mm </span>
														<span style="COLOR: #000000">=</span>
														<span style="COLOR: #000000"> </span>
														<span style="COLOR: #0000ff">new</span>
														<span style="COLOR: #000000"> ImageSize();</span>
														<span style="COLOR: #008000">//<br /></span>
														<span style="COLOR: #008080">32</span>
														<span style="COLOR: #008000">
																<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
														</span>
														<span style="COLOR: #000000">                        </span>
														<span style="COLOR: #0000ff">string</span>
														<span style="COLOR: #000000"> oo </span>
														<span style="COLOR: #000000">=</span>
														<span style="COLOR: #000000"> </span>
														<span style="COLOR: #000000">""</span>
														<span style="COLOR: #000000">;<br /></span>
														<span style="COLOR: #008080">33</span>
														<span style="COLOR: #000000">
																<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                        mm.SaveThreePicture(imag, Server.MapPath(SavePath), </span>
														<span style="COLOR: #0000ff">out</span>
														<span style="COLOR: #000000"> oo);<br /></span>
														<span style="COLOR: #008080">34</span>
														<span style="COLOR: #000000">
																<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
																<br />
														</span>
														<span style="COLOR: #008080">35</span>
														<span style="COLOR: #000000">
																<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                        MessageBoxLab.Text </span>
														<span style="COLOR: #000000">=</span>
														<span style="COLOR: #000000"> </span>
														<span style="COLOR: #000000">"</span>
														<span style="COLOR: #000000">上传成功</span>
														<span style="COLOR: #000000">"</span>
														<span style="COLOR: #000000">;<br /></span>
														<span style="COLOR: #008080">36</span>
														<span style="COLOR: #000000">
																<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                        HiddenText.Value </span>
														<span style="COLOR: #000000">=</span>
														<span style="COLOR: #000000"> oo;<br /></span>
														<span style="COLOR: #008080">37</span>
														<span style="COLOR: #000000">
																<img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />                    }</span>
												</span>
												<span style="COLOR: #000000">
														<br />
												</span>
												<span style="COLOR: #008080">38</span>
												<span style="COLOR: #000000">
														<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                    </span>
												<span style="COLOR: #0000ff">else</span>
												<span style="COLOR: #000000">
														<br />
												</span>
												<span style="COLOR: #008080">39</span>
												<span style="COLOR: #000000">
														<img id="Codehighlighter1_1781_1865_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1781_1865_Open_Text.style.display='none'; Codehighlighter1_1781_1865_Closed_Image.style.display='inline'; Codehighlighter1_1781_1865_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
														<img id="Codehighlighter1_1781_1865_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1781_1865_Closed_Text.style.display='none'; Codehighlighter1_1781_1865_Open_Image.style.display='inline'; Codehighlighter1_1781_1865_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                    </span>
												<span id="Codehighlighter1_1781_1865_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
														<img src="http://www.cppblog.com/images/dot.gif" />
												</span>
												<span id="Codehighlighter1_1781_1865_Open_Text">
														<span style="COLOR: #000000">{<br /></span>
														<span style="COLOR: #008080">40</span>
														<span style="COLOR: #000000">
																<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                        MessageBoxLab.Text </span>
														<span style="COLOR: #000000">=</span>
														<span style="COLOR: #000000"> </span>
														<span style="COLOR: #000000">"</span>
														<span style="COLOR: #000000">文件大小不允许超过200K</span>
														<span style="COLOR: #000000">"</span>
														<span style="COLOR: #000000">;<br /></span>
														<span style="COLOR: #008080">41</span>
														<span style="COLOR: #000000">
																<img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />                    }</span>
												</span>
												<span style="COLOR: #000000">
														<br />
												</span>
												<span style="COLOR: #008080">42</span>
												<span style="COLOR: #000000">
														<img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />                }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
										</span>
										<span style="COLOR: #008080">43</span>
										<span style="COLOR: #000000">
												<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
										<span style="COLOR: #0000ff">else</span>
										<span style="COLOR: #000000">
												<br />
										</span>
										<span style="COLOR: #008080">44</span>
										<span style="COLOR: #000000">
												<img id="Codehighlighter1_1922_1992_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1922_1992_Open_Text.style.display='none'; Codehighlighter1_1922_1992_Closed_Image.style.display='inline'; Codehighlighter1_1922_1992_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
												<img id="Codehighlighter1_1922_1992_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1922_1992_Closed_Text.style.display='none'; Codehighlighter1_1922_1992_Open_Image.style.display='inline'; Codehighlighter1_1922_1992_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                </span>
										<span id="Codehighlighter1_1922_1992_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.cppblog.com/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_1922_1992_Open_Text">
												<span style="COLOR: #000000">{<br /></span>
												<span style="COLOR: #008080">45</span>
												<span style="COLOR: #000000">
														<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                    MessageBoxLab.Text </span>
												<span style="COLOR: #000000">=</span>
												<span style="COLOR: #000000"> </span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">文件类型不正确</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">;<br /></span>
												<span style="COLOR: #008080">46</span>
												<span style="COLOR: #000000">
														<img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />                }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
										</span>
										<span style="COLOR: #008080">47</span>
										<span style="COLOR: #000000">
												<img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
								</span>
								<span style="COLOR: #008080">48</span>
								<span style="COLOR: #000000">
										<img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
						</span>
						<span style="COLOR: #008080">49</span>
						<span style="COLOR: #000000">
								<img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />    }</span>
				</span>
				<span style="COLOR: #000000">
						<br />
				</span>
				<span style="COLOR: #008080">50</span>
				<span style="COLOR: #000000">
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div><img src ="http://www.cppblog.com/AthrunOnline/aggbug/82358.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AthrunOnline/" target="_blank">梁乔峰</a> 2009-05-09 11:29 <a href="http://www.cppblog.com/AthrunOnline/archive/2009/05/09/82358.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自定义审核流程(一)</title><link>http://www.cppblog.com/AthrunOnline/archive/2009/05/09/82290.html</link><dc:creator>梁乔峰</dc:creator><author>梁乔峰</author><pubDate>Fri, 08 May 2009 16:39:00 GMT</pubDate><guid>http://www.cppblog.com/AthrunOnline/archive/2009/05/09/82290.html</guid><wfw:comment>http://www.cppblog.com/AthrunOnline/comments/82290.html</wfw:comment><comments>http://www.cppblog.com/AthrunOnline/archive/2009/05/09/82290.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AthrunOnline/comments/commentRss/82290.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AthrunOnline/services/trackbacks/82290.html</trackback:ping><description><![CDATA[在应用OA中,审核流程是必不可少的部分,如何设计能令审核流程更动态,更灵活.以下是我个人的实现思想.有不同意的欢迎指出..<br /><br />        在审核流程部分,应该需要三张数据表,流程主表,流程子表,角色表(职位等级表).<br /><br />         流程主表:需要用以下字段<br />                  自动添加的主键ID int.<br />                   流程名称,title nvarchar(100),<br />                   流程备注,Remove nvarchar(500),<br />                   建立日期CreateDate   DateTime,<br />          流程子表:<br />                   自动添加的主键ID int.<br />                    流程主表MainID int,<br />                    流程序列Sequence int ,<br />                    步骤名称StepsName nvarchar(100),<br />                    步骤备注,Remove nvarchar(500),<br />                    角色名称 UserName  nvarchar(100),<br />                    流程角色(以职位区分) UserGroupID  int,<br />          角色表:<br />                   角色ID   int,<br />                   角色名称, name varchar(100),<br />                   建立日期CreateDate   DateTime,<br />          员工表:<br />                   员工ID varchar(100)<br />                   角色ID int ,<br /><br /><br />做到这里,我们基本实现了自定义流程的初始化信息数据表实现了,需要实现审核流程,必不可少的部分是审核功能表,<br />            审核主表,审核子表<br /><br />            审核主表:<br />                    审核文件单号:ID  int<br />                    审核文件日期: AuditDate  DateTime<br />                    审核文件标题:AuditTitle  nvarchar(500)<br />                    审核文件内容:AuditBody ntext,<br />                    审核状态:Auditstatus int,        --0未提交,1未审核,2未通过,3已通过,<br />                    审批手续ProcessID  int<br />            审核子表:<br />                    审核子表ID  int <br />                    审核主表MainID int,<br />                    审核意见AuditOpinion  ntext<br />                    审核状态Auditstatus bit   ---0驳回,1是通过,<br />                    审核角色ID  int ,<br />                    审核流程序列 Sequence int,<br />                    审核/提交人AuditID varchar(100) --(员工ID)<br />                    审核日期CreateDate   DateTime,<br /><br />整个审核流程所用的的数据表我们已经全部建好了,现在我们模拟一下.<br />                    <br /><br />某省某市的房产局,有三种房产审批流程.<br />         1\为房地产代办,:               ID为1<br />         2\为二手房转手                 ID为2<br />         3\为自建房                         ID为3.<br /><br />ID为1,由房地产商统一办理,走特殊通道,直接提交到XX部部长审批--&gt;局长审批<br />ID为2,有房产局员工提出,提交到主任审批--&gt;SS部部长审批--&gt;局长审批<br />ID为3,由报建局--&gt;房产局员工--&gt;主任审批--&gt;SS部部长审批--&gt;局长审批<br /><br /><br />基本的信息我们也已经模拟好了,现在A1来到房产局,申请2类房产证审批流程,<br /><br />由房产局员工B1审查所有资料是否齐全,B1提交审查资料,我们得到一个ID为1的审核文件单号,主任C1只能看到又B1提交的审查资料,SS部长只能查看主任级提交的审查资料,局长审查部长级的资料.<br /><br />具体的实现代码明天再写<br /><br /><a href="/AthrunOnline/">明鏡臺</a><img src ="http://www.cppblog.com/AthrunOnline/aggbug/82290.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AthrunOnline/" target="_blank">梁乔峰</a> 2009-05-09 00:39 <a href="http://www.cppblog.com/AthrunOnline/archive/2009/05/09/82290.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>