<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:fs="http://www.feedsky.com/namespace/feed" version="2.0"><channel><atom:link href="http://feed.feedsky.com/bosswin" type="application/rss+xml" ref="self"></atom:link><lastBuildDate>Tue, 07 Aug 2007 01:53:49 GMT</lastBuildDate><title>代码小猪</title><description>Bosswin</description><link>http://blog.mobilelook.cn/</link><language>zh-CN</language><copyright>Copyright 2006-2007 www.mobilelook.cn. Some Rights Reserved.&amp;lt;script src='http://s110.cnzz.com/stat.php?id=531321&amp;amp;web_id=531321&amp;amp;show=pic1' language='JavaScript' charset='gb2312'&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;script language=&amp;quot;javascript&amp;quot; type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://js.users.51.la/1149645.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;</copyright><pubDate>Tue, 07 Aug 2007 01:54:32 GMT</pubDate><dc:date>2007-08-07T01:54:32Z</dc:date><dc:language>zh-CN</dc:language><dc:rights>Copyright 2006-2007 www.mobilelook.cn. Some Rights Reserved.&amp;lt;script src='http://s110.cnzz.com/stat.php?id=531321&amp;amp;web_id=531321&amp;amp;show=pic1' language='JavaScript' charset='gb2312'&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;script language=&amp;quot;javascript&amp;quot; type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://js.users.51.la/1149645.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;</dc:rights><item><title>Knowledge Base Home</title><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/15322375/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=73</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=73&amp;key=f4eaf1b2</trackback:ping><description>&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; background=&quot;&quot; border=&quot;0&quot;&gt;    &lt;tbody&gt;        &lt;tr&gt;            &lt;!--            &lt;td width=&quot;153&quot;&gt;            &lt;img height=1 width=&quot;153&quot; src=&quot;&quot; alt=&quot;&quot;&gt;            &lt;/td&gt;            --&gt;            &lt;td class=&quot;topic_body&quot; valign=&quot;top&quot; width=&quot;90%&quot;&gt;            &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; border=&quot;0&quot;&gt;                &lt;tbody&gt;                    &lt;tr&gt;                        &lt;td class=&quot;sectiontitle&quot;&gt;&lt;strong&gt;Google Code&lt;/strong&gt;&lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td valign=&quot;top&quot;&gt;                        &lt;ul class=&quot;section&quot;&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=56458&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;What is code.google.com? &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=56459&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Who are the people behind code.google.com? &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=56497&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;In what other ways does Google share its knowledge with external developers? &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=56489&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;What if I have questions about code.google.com? &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=56485&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;What APIs, file format information and feeds does Google offer for external developers who wish to code solutions that use Google services? &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10435&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;More...&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                        &lt;/ul&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td&gt;&lt;br /&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td class=&quot;sectiontitle&quot;&gt;&lt;strong&gt;Open Source&lt;/strong&gt;&lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td valign=&quot;top&quot;&gt;                        &lt;ul class=&quot;section&quot;&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10441&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Code Search&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10442&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Summer of Code&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10437&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google's Open Source Projects&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10380&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Project Hosting&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                        &lt;/ul&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td&gt;&lt;br /&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td class=&quot;sectiontitle&quot;&gt;&lt;strong&gt;Reach Google Users&lt;/strong&gt;&lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td valign=&quot;top&quot;&gt;                        &lt;ul class=&quot;section&quot;&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10033&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Desktop Gadgets API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10027&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Gadgets API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10037&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Toolbar API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10426&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;KML in Google Earth&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                        &lt;/ul&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td&gt;&lt;br /&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td class=&quot;sectiontitle&quot;&gt;&lt;strong&gt;Enhance Your Web Site&lt;/strong&gt;&lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td valign=&quot;top&quot;&gt;                        &lt;ul class=&quot;section&quot;&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=11330&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;AJAX Feed API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10021&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;AJAX Search API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=11715&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Custom Search Engines&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10043&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Gadgets for your page&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=11628&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Gears&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10034&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Web Toolkit&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10028&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Maps API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10042&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Sitemaps&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                        &lt;/ul&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td&gt;&lt;br /&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td class=&quot;sectiontitle&quot;&gt;&lt;strong&gt;Integrate With Google&lt;/strong&gt;&lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td valign=&quot;top&quot;&gt;                        &lt;ul class=&quot;section&quot;&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10019&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;AdSense API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10020&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;AdWords API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10024&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Base Data API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10022&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Blogger Data API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10023&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Calendar Data API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=11279&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Apps APIs&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10026&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Checkout API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=11558&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Mashup Editor&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=11908&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Safe Browsing API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10031&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Talk&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10949&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Picasa Web Albums Data API&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10708&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Docs Data APIs&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                        &lt;/ul&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td&gt;&lt;br /&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td class=&quot;sectiontitle&quot;&gt;&lt;strong&gt;Articles &amp;amp; Tutorials&lt;/strong&gt;&lt;/td&gt;                    &lt;/tr&gt;                    &lt;tr&gt;                        &lt;td valign=&quot;top&quot;&gt;                        &lt;ul class=&quot;section&quot;&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=73977&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Meeting User Expectations: Interacting With Items &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=73921&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Getting Started with the .NET Client Library &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=73041&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Building an Extensive Maps Mashup &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=72765&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Google Mashup Editor and Yahoo! Pipes: Friend, not Foe &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=72674&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Simple XML Parsing &lt;/font&gt;&lt;/a&gt;&lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=11369&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;More...&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                            &lt;li&gt;&lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=12141&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;External Contributions&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;                        &lt;/ul&gt;                        &lt;/td&gt;                    &lt;/tr&gt;                &lt;/tbody&gt;            &lt;/table&gt;            &lt;/td&gt;        &lt;/tr&gt;    &lt;/tbody&gt;&lt;/table&gt;</description><category>『GOOGLE开发』</category><pubDate>Tue, 07 Aug 2007 09:53:49 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/GoogleDevelopment/200708/73.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-08-07T01:53:49Z</dc:date><fs:srclink>http://blog.mobilelook.cn/GoogleDevelopment/200708/73.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/15322375/1503640</fs:itemid></item><item><title>Google Summer of Code</title><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/15226854/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=72</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=72&amp;key=7c22d1df</trackback:ping><description>&lt;h1&gt;Google Summer of Code&amp;trade;&lt;/h1&gt;&lt;p&gt;Accepted student applications for &lt;em&gt;Google Summer of Code&lt;/em&gt; have been announced! We accepted over 900 student applicants from a pool of nearly 6,200 applications.&lt;/p&gt;&lt;p&gt;All the mentoring organizations that will participate in &lt;em&gt;Google Summer of Code&lt;/em&gt; 2007 are listed below. You can learn more about the accepted students and their projects by visiting each organization's &amp;quot;about&amp;quot; page.&lt;/p&gt;&lt;p&gt;You might also be interested in keeping up with news about the program on the &lt;a href=&quot;http://googlesummerofcode.blogspot.com/&quot;&gt;Google Summer of Code Blog&lt;/a&gt;. And, you can still hang out with us in &lt;tt&gt;#summer-discuss&lt;/tt&gt; on &lt;a href=&quot;http://www.slashnet.org/&quot;&gt;Slashnet&lt;/a&gt; or in the &lt;a href=&quot;http://groups.google.com/group/google-summer-of-code-discuss&quot;&gt;program discussion group&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;big&gt;&lt;strong&gt;&lt;a href=&quot;http://code.google.com/soc/2007/student_home.html&quot;&gt;&lt;font size=&quot;4&quot;&gt;Registered Student Login&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/big&gt;&lt;/p&gt;&lt;p&gt;&lt;big&gt;&lt;strong&gt;&lt;a href=&quot;http://code.google.com/soc/2007/mentor_home.html&quot;&gt;&lt;font size=&quot;4&quot;&gt;Registered Mentor Login&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/big&gt;&lt;/p&gt;&lt;p&gt;You can still take a look at all the organizations' ideas pages to learn more about what help they need from new contributors.&lt;/p&gt;&lt;h3&gt;Mentoring Organizations Participating in &lt;em&gt;Google Summer of Code&lt;/em&gt; 2007&lt;/h3&gt;&lt;table style=&quot;POSITION: relative&quot; class=&quot;organizations&quot;&gt;    &lt;tbody&gt;        &lt;tr&gt;            &lt;td&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/abisource/about.html&quot; rel=&quot;nofollow&quot;&gt;AbiSource&lt;/a&gt; (&lt;a href=&quot;http://www.abisource.com/twiki/bin/view/Abiword/SummerOfCode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/adium/about.html&quot; rel=&quot;nofollow&quot;&gt;Adium&lt;/a&gt; (&lt;a href=&quot;http://trac.adiumx.com/wiki/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/asf/about.html&quot; rel=&quot;nofollow&quot;&gt;The Apache Software Foundation&lt;/a&gt; (&lt;a href=&quot;http://wiki.apache.org/general/SummerOfCode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/aqsis/about.html&quot; rel=&quot;nofollow&quot;&gt;Aqsis Team&lt;/a&gt; (&lt;a href=&quot;http://wiki.aqsis.org/dev/soc_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/ardour/about.html&quot; rel=&quot;nofollow&quot;&gt;Ardour&lt;/a&gt; (&lt;a href=&quot;http://ardour.org/summerofcode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/argouml/about.html&quot; rel=&quot;nofollow&quot;&gt;ArgoUML&lt;/a&gt; (&lt;a href=&quot;http://argouml.tigris.org/googlessoc2007.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/amp/about.html&quot; rel=&quot;nofollow&quot;&gt;Audacious Media Player&lt;/a&gt; (&lt;a href=&quot;http://audacious-media-player.org/Summer_of_Code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/bzr/about.html&quot; rel=&quot;nofollow&quot;&gt;Bazaar&lt;/a&gt; (&lt;a href=&quot;http://bazaar-vcs.org/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/bbc/about.html&quot; rel=&quot;nofollow&quot;&gt;BBC Research&lt;/a&gt; (&lt;a href=&quot;http://kamaelia.sourceforge.net/SummerOfCode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/beagle/about.html&quot; rel=&quot;nofollow&quot;&gt;Beagle&lt;/a&gt; (&lt;a href=&quot;http://beagle-project.org/Summer_Of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/blender/about.html&quot; rel=&quot;nofollow&quot;&gt;Blender Foundation&lt;/a&gt; (&lt;a href=&quot;http://wiki.blender.org/index.php/BlenderDev/GSOC_2007_Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/boost/about.html&quot; rel=&quot;nofollow&quot;&gt;Boost C++&lt;/a&gt; (&lt;a href=&quot;http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Google_Summer_Of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/bzflag/about.html&quot; rel=&quot;nofollow&quot;&gt;BZFlag&lt;/a&gt; (&lt;a href=&quot;http://my.bzflag.org/w/Google_Summer_of_Code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/cscs/about.html&quot; rel=&quot;nofollow&quot;&gt;Center for the Study of Complex Systems (CSCS), University of Michigan&lt;/a&gt; (&lt;a href=&quot;http://cscs.umich.edu/~rlr/SoC/index.php?n=Main.Soc2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/clam/about.html&quot; rel=&quot;nofollow&quot;&gt;CLAM ( at the Universitat Pompeu Fabra)&lt;/a&gt; (&lt;a href=&quot;http://iua-share.upf.edu/wikis/clam/index.php/SoC_ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/codehaus/about.html&quot; rel=&quot;nofollow&quot;&gt;The Codehaus&lt;/a&gt; (&lt;a href=&quot;http://gsoc.codehaus.org/Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/cpsr/about.html&quot; rel=&quot;nofollow&quot;&gt;Computer Professionals for Social Responsibility&lt;/a&gt; (&lt;a href=&quot;http://www.insecure.org/cpsr&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/coppermine/about.html&quot; rel=&quot;nofollow&quot;&gt;Coppermine Photo Gallery&lt;/a&gt; (&lt;a href=&quot;http://docs.google.com/Doc?id=d3kbkz4_44gn9cf6&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/coresystems/about.html&quot; rel=&quot;nofollow&quot;&gt;coresystems GmbH&lt;/a&gt; (&lt;a href=&quot;http://linuxbios.org/GSoC&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/cc/about.html&quot; rel=&quot;nofollow&quot;&gt;Creative Commons&lt;/a&gt; (&lt;a href=&quot;http://wiki.creativecommons.org/Summer_of_Code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/crystal/about.html&quot; rel=&quot;nofollow&quot;&gt;Crystal Space&lt;/a&gt; (&lt;a href=&quot;http://trac.crystalspace3d.org/trac/CS/wiki/SoC%20Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/daisy/about.html&quot; rel=&quot;nofollow&quot;&gt;Daisy CMS&lt;/a&gt; (&lt;a href=&quot;http://cocoondev.org/daisyscratchpad/291-cd.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/debian/about.html&quot; rel=&quot;nofollow&quot;&gt;Debian&lt;/a&gt; (&lt;a href=&quot;http://wiki.debian.org/SummerOfCode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/detached/about.html&quot; rel=&quot;nofollow&quot;&gt;Detached Solutions&lt;/a&gt; (&lt;a href=&quot;http://www.detachedsolutions.com/soc/2007/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/django/about.html&quot; rel=&quot;nofollow&quot;&gt;Django (Lawrence-Journal World)&lt;/a&gt; (&lt;a href=&quot;http://code.djangoproject.com/wiki/SummerOfCode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/dojo/about.html&quot; rel=&quot;nofollow&quot;&gt;Dojo Foundation&lt;/a&gt; (&lt;a href=&quot;http://dojo.jot.com/SummerOfCode/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/drupal/about.html&quot; rel=&quot;nofollow&quot;&gt;Drupal&lt;/a&gt; (&lt;a href=&quot;http://drupal.org/node/110703&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/dspace/about.html&quot; rel=&quot;nofollow&quot;&gt;DSpace&lt;/a&gt; (&lt;a href=&quot;http://wiki.dspace.org/index.php/Summer_of_Code_Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/eclipse/about.html&quot; rel=&quot;nofollow&quot;&gt;Eclipse&lt;/a&gt; (&lt;a href=&quot;http://wiki.eclipse.org/index.php/Google_Summer_of_Code_2007_Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/eff/about.html&quot; rel=&quot;nofollow&quot;&gt;The Electronic Frontier Foundation&lt;/a&gt; (&lt;a href=&quot;http://tor.eff.org/volunteer.html.en#Coding&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/etherboot/about.html&quot; rel=&quot;nofollow&quot;&gt;Etherboot Project&lt;/a&gt; (&lt;a href=&quot;http://etherboot.org/wiki/soc/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/exist/about.html&quot; rel=&quot;nofollow&quot;&gt;eXist&lt;/a&gt; (&lt;a href=&quot;http://exist-db.org/summer.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/fann/about.html&quot; rel=&quot;nofollow&quot;&gt;FANN - The Fast Artificial Neural Network Library&lt;/a&gt; (&lt;a href=&quot;http://leenissen.dk/fann/index.php?p=gsoc.php&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/fedora/about.html&quot; rel=&quot;nofollow&quot;&gt;The Fedora Project&lt;/a&gt; (&lt;a href=&quot;http://fedoraproject.org/wiki/FedoraBounties&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/ffmpeg/about.html&quot; rel=&quot;nofollow&quot;&gt;FFmpeg&lt;/a&gt; (&lt;a href=&quot;http://wiki.multimedia.cx/index.php?title=Summer_Of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/fityk/about.html&quot; rel=&quot;nofollow&quot;&gt;Fityk&lt;/a&gt; (&lt;a href=&quot;http://fityk.svn.sourceforge.net/viewvc/*checkout*/fityk/trunk/TODO&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/fsijp/about.html&quot; rel=&quot;nofollow&quot;&gt;The Free Software Initiative of Japan&lt;/a&gt; (&lt;a href=&quot;https://members.fsij.org/trac/soc2007/wiki/Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/freebsd/about.html&quot; rel=&quot;nofollow&quot;&gt;FreeBSD&lt;/a&gt; (&lt;a href=&quot;http://www.freebsd.org/projects/summerofcode.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/freenet/about.html&quot; rel=&quot;nofollow&quot;&gt;Freenet Project Inc&lt;/a&gt; (&lt;a href=&quot;http://wiki.freenetproject.org/SummerOfCode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/freevo/about.html&quot; rel=&quot;nofollow&quot;&gt;Freevo&lt;/a&gt; (&lt;a href=&quot;http://freevo.sourceforge.net/cgi-bin/freevo-2.0/SoC2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/gallery/about.html&quot; rel=&quot;nofollow&quot;&gt;Gallery&lt;/a&gt; (&lt;a href=&quot;http://gallery.menalto.com/summer_of_code/2007/ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/gcc/about.html&quot; rel=&quot;nofollow&quot;&gt;GCC&lt;/a&gt; (&lt;a href=&quot;http://gcc.gnu.org/wiki/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/geda/about.html&quot; rel=&quot;nofollow&quot;&gt;The gEDA Project&lt;/a&gt; (&lt;a href=&quot;http://geda.seul.org/gsoc/projects.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/geeklog/about.html&quot; rel=&quot;nofollow&quot;&gt;Geeklog&lt;/a&gt; (&lt;a href=&quot;http://wiki.geeklog.net/wiki/index.php/Google_Summer_of_Code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/genmapp/about.html&quot; rel=&quot;nofollow&quot;&gt;GenMAPP&lt;/a&gt; (&lt;a href=&quot;http://conklinwolf.ucsf.edu/genmappwiki/Google_Summer_of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/gentoo/about.html&quot; rel=&quot;nofollow&quot;&gt;Gentoo Foundation&lt;/a&gt; (&lt;a href=&quot;http://gentoo.org/proj/en/userrel/soc&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/ggi/about.html&quot; rel=&quot;nofollow&quot;&gt;The GGI Project&lt;/a&gt; (&lt;a href=&quot;http://www.ggi-project.org/soc.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/git/about.html&quot; rel=&quot;nofollow&quot;&gt;Git Development Community&lt;/a&gt; (&lt;a href=&quot;http://git.or.cz/gitwiki/SoC2007Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/gnome/about.html&quot; rel=&quot;nofollow&quot;&gt;GNOME&lt;/a&gt; (&lt;a href=&quot;http://live.gnome.org/SummerOfCode2007/Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/gnu/about.html&quot; rel=&quot;nofollow&quot;&gt;GNU Project&lt;/a&gt; (&lt;a href=&quot;http://www.gnu.org/software/soc-projects/ideas.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/gnucash/about.html&quot; rel=&quot;nofollow&quot;&gt;GnuCash&lt;/a&gt; (&lt;a href=&quot;http://wiki.gnucash.org/wiki/SoC2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/gnustep/about.html&quot; rel=&quot;nofollow&quot;&gt;GNUstep&lt;/a&gt; (&lt;a href=&quot;http://wiki.gnustep.org/index.php?title=Summer_Of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/google/about.html&quot; rel=&quot;nofollow&quot;&gt;Google&lt;/a&gt; (&lt;a href=&quot;http://code.google.com/p/google-web-toolkit/wiki/GWT_GSoC&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/haiku/about.html&quot; rel=&quot;nofollow&quot;&gt;Haiku&lt;/a&gt; (&lt;a href=&quot;http://www.haiku-os.org/community/gsoc2007/ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/handhelds/about.html&quot; rel=&quot;nofollow&quot;&gt;Handhelds.org&lt;/a&gt; (&lt;a href=&quot;http://www.handhelds.org/moin/moin.cgi/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/haskell/about.html&quot; rel=&quot;nofollow&quot;&gt;Haskell.org&lt;/a&gt; (&lt;a href=&quot;http://hackage.haskell.org/trac/summer-of-code/query?status=new&amp;amp;status=assigned&amp;amp;status=reopened&amp;amp;group=topic&amp;amp;type=proposed-project&amp;amp;order=priority&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/pano/about.html&quot; rel=&quot;nofollow&quot;&gt;hugin / panotools&lt;/a&gt; (&lt;a href=&quot;http://wiki.panotools.org/SoC2007_projects&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/iem/about.html&quot; rel=&quot;nofollow&quot;&gt;IEM - Institute of Electronic Music and Acoustics, Graz&lt;/a&gt; (&lt;a href=&quot;http://puredata.info/dev/summer-of-code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/ikiwiki/about.html&quot; rel=&quot;nofollow&quot;&gt;ikiwiki&lt;/a&gt; (&lt;a href=&quot;http://ikiwiki.info/soc.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/inkscape/about.html&quot; rel=&quot;nofollow&quot;&gt;Inkscape&lt;/a&gt; (&lt;a href=&quot;http://wiki.inkscape.org/wiki/index.php/Googles_Summer_Of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/internet2/about.html&quot; rel=&quot;nofollow&quot;&gt;Internet2&lt;/a&gt; (&lt;a href=&quot;http://www.internet2.edu/soc2007/ideas.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/jikesrvm/about.html&quot; rel=&quot;nofollow&quot;&gt;Jikes RVM&lt;/a&gt; (&lt;a href=&quot;http://docs.codehaus.org/display/RVM/Project+Proposals&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/joomla/about.html&quot; rel=&quot;nofollow&quot;&gt;Joomla!&lt;/a&gt; (&lt;a href=&quot;http://dev.joomla.org/content/view/2334/99/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/k3d/about.html&quot; rel=&quot;nofollow&quot;&gt;K-3D&lt;/a&gt; (&lt;a href=&quot;http://www.k-3d.org/wiki/Google_Summer_of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/kde/about.html&quot; rel=&quot;nofollow&quot;&gt;KDE&lt;/a&gt; (&lt;a href=&quot;http://techbase.kde.org/Projects/Summer_of_Code/2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/lanka/about.html&quot; rel=&quot;nofollow&quot;&gt;Lanka Software Foundation&lt;/a&gt; (&lt;a href=&quot;http://www.opensource.lk/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/liblime/about.html&quot; rel=&quot;nofollow&quot;&gt;Liblime&lt;/a&gt; (&lt;a href=&quot;http://wiki.liblime.com/doku.php?id=googlesummerofcodeideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/lispnyc/about.html&quot; rel=&quot;nofollow&quot;&gt;LispNYC.org&lt;/a&gt; (&lt;a href=&quot;http://lispnyc.org/soc2007.clp&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;/td&gt;            &lt;td&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/llvm/about.html&quot; rel=&quot;nofollow&quot;&gt;LLVM Compiler Infrastructure&lt;/a&gt; (&lt;a href=&quot;http://llvm.org/OpenProjects.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/macports/about.html&quot; rel=&quot;nofollow&quot;&gt;MacPorts&lt;/a&gt; (&lt;a href=&quot;http://trac.macosforge.org/projects/macports/wiki/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/maemo/about.html&quot; rel=&quot;nofollow&quot;&gt;maemo&lt;/a&gt; (&lt;a href=&quot;http://maemo.org/maemowiki/GoogleSoC2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/metabrainz/about.html&quot; rel=&quot;nofollow&quot;&gt;MetaBrainz Foundation&lt;/a&gt; (&lt;a href=&quot;http://wiki.musicbrainz.org/SummerOfCodeIdeas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/mixxx/about.html&quot; rel=&quot;nofollow&quot;&gt;Mixxx&lt;/a&gt; (&lt;a href=&quot;http://mixxx.sourceforge.net/wiki/index.php/GSoC_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/moin/about.html&quot; rel=&quot;nofollow&quot;&gt;MoinMoin Wiki Project&lt;/a&gt; (&lt;a href=&quot;http://moinmoin.wikiwikiweb.de/GoogleSoc2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/mono/about.html&quot; rel=&quot;nofollow&quot;&gt;Mono Project&lt;/a&gt; (&lt;a href=&quot;http://www.mono-project.com/StudentProjects&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/moodle/about.html&quot; rel=&quot;nofollow&quot;&gt;Moodle&lt;/a&gt; (&lt;a href=&quot;http://docs.moodle.org/en/Student_projects&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/mozilla/about.html&quot; rel=&quot;nofollow&quot;&gt;Mozilla Foundation&lt;/a&gt; (&lt;a href=&quot;http://wiki.mozilla.org/Community:SummerOfCode07&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/mysql/about.html&quot; rel=&quot;nofollow&quot;&gt;MySQL AB&lt;/a&gt; (&lt;a href=&quot;http://forge.mysql.com/wiki/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/nescent/about.html&quot; rel=&quot;nofollow&quot;&gt;National Evolutionary Synthesis Center (NESCent), Phyloinformatics Group&lt;/a&gt; (&lt;a href=&quot;http://phyloinformatics.net/Phyloinformatics_Summer_of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/netbsd/about.html&quot; rel=&quot;nofollow&quot;&gt;NetBSD&lt;/a&gt; (&lt;a href=&quot;http://www.netbsd.org/contrib/soc-projects.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/neuros/about.html&quot; rel=&quot;nofollow&quot;&gt;Neuros Technology&lt;/a&gt; (&lt;a href=&quot;http://wiki.neurostechnology.com/index.php/Summer_of_Code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/nmap/about.html&quot; rel=&quot;nofollow&quot;&gt;Nmap Security Scanner&lt;/a&gt; (&lt;a href=&quot;http://insecure.org/nmap/GoogleGrants.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/ogre/about.html&quot; rel=&quot;nofollow&quot;&gt;OGRE&lt;/a&gt; (&lt;a href=&quot;http://www.ogre3d.org/wiki/index.php/HelpRequested&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/olpc/about.html&quot; rel=&quot;nofollow&quot;&gt;One Laptop Per Child&lt;/a&gt; (&lt;a href=&quot;http://wiki.laptop.org/wiki/OLPC_Google_Summer_of_Code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/osvdb/about.html&quot; rel=&quot;nofollow&quot;&gt;Open Security Foundation (OSVDB)&lt;/a&gt; (&lt;a href=&quot;http://osvdb.org/summerofcode.php&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/osaf/about.html&quot; rel=&quot;nofollow&quot;&gt;Open Source Applications Foundation&lt;/a&gt; (&lt;a href=&quot;http://wiki.osafoundation.org/Journal/TedLeung20060127&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/openicc/about.html&quot; rel=&quot;nofollow&quot;&gt;OpenICC&lt;/a&gt; (&lt;a href=&quot;http://freedesktop.org/wiki/OpenIccForGoogleSoC2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/openmoko/about.html&quot; rel=&quot;nofollow&quot;&gt;OpenMoko&lt;/a&gt; (&lt;a href=&quot;http://wiki.openmoko.org/wiki/Summer_of_code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/openmrs/about.html&quot; rel=&quot;nofollow&quot;&gt;OpenMRS&lt;/a&gt; (&lt;a href=&quot;http://soc2007.openmrs.org/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/ooo/about.html&quot; rel=&quot;nofollow&quot;&gt;OpenOffice.org&lt;/a&gt; (&lt;a href=&quot;http://wiki.services.openoffice.org/wiki/Summer_of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/opensolaris/about.html&quot; rel=&quot;nofollow&quot;&gt;OpenSolaris&lt;/a&gt; (&lt;a href=&quot;http://www.opensolaris.org/os/project/summerofcode/projects/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/osuosl/about.html&quot; rel=&quot;nofollow&quot;&gt;Oregon State University Open Source Lab (OSU OSL)&lt;/a&gt; (&lt;a href=&quot;http://wiki.osuosl.org/display/LNX/Google+Summer+of+Code+2007+Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/oscar/about.html&quot; rel=&quot;nofollow&quot;&gt;OSCAR&lt;/a&gt; (&lt;a href=&quot;http://oscar.openclustergroup.org/GSoC2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/osgeo/about.html&quot; rel=&quot;nofollow&quot;&gt;OSGeo&lt;/a&gt; (&lt;a href=&quot;http://wiki.osgeo.org/index.php/2007_SoC_Merged_Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/php/about.html&quot; rel=&quot;nofollow&quot;&gt;PHP&lt;/a&gt; (&lt;a href=&quot;http://de.php.net/ideas.php&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/gaim/about.html&quot; rel=&quot;nofollow&quot;&gt;Pidgin&lt;/a&gt; (&lt;a href=&quot;http://pidgin.im/summerofcode/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/p9/about.html&quot; rel=&quot;nofollow&quot;&gt;Plan 9 from Bell Labs&lt;/a&gt; (&lt;a href=&quot;http://gsoc.cat-v.org/projects/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/planetmath/about.html&quot; rel=&quot;nofollow&quot;&gt;PlanetMath&lt;/a&gt; (&lt;a href=&quot;http://planetx.cc.vt.edu/AsteroidMeta//2007_PM_Summer_of_Code_Coordination&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/plone/about.html&quot; rel=&quot;nofollow&quot;&gt;Plone Foundation&lt;/a&gt; (&lt;a href=&quot;http://plone.org/products/plone/releases/SoC-2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/psu/about.html&quot; rel=&quot;nofollow&quot;&gt;Portland State University&lt;/a&gt; (&lt;a href=&quot;http://summer.cs.pdx.edu/ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/postgres/about.html&quot; rel=&quot;nofollow&quot;&gt;PostgreSQL project&lt;/a&gt; (&lt;a href=&quot;http://www.postgresql.org/developer/summerofcode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/psf/about.html&quot; rel=&quot;nofollow&quot;&gt;Python Software Foundation&lt;/a&gt; (&lt;a href=&quot;http://wiki.python.org/moin/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/lurie/about.html&quot; rel=&quot;nofollow&quot;&gt;Robert H. Lurie Comprehensive Cancer Center of Northwestern University&lt;/a&gt; (&lt;a href=&quot;http://www.basic.northwestern.edu/projects/SoC07/index.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/rockbox/about.html&quot; rel=&quot;nofollow&quot;&gt;Rockbox&lt;/a&gt; (&lt;a href=&quot;http://www.rockbox.org/twiki/bin/view/Main/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/ruby/about.html&quot; rel=&quot;nofollow&quot;&gt;Ruby Central, Inc.&lt;/a&gt; (&lt;a href=&quot;http://www.rubycentral.org/projects/soc2007/ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/samba/about.html&quot; rel=&quot;nofollow&quot;&gt;Samba&lt;/a&gt; (&lt;a href=&quot;http://wiki.samba.org/index.php/SoC&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/scons/about.html&quot; rel=&quot;nofollow&quot;&gt;SCons Foundation: Next-Generation Build Tool&lt;/a&gt; (&lt;a href=&quot;http://www.scons.org/wiki/GSoC2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/scribus/about.html&quot; rel=&quot;nofollow&quot;&gt;Scribus Development Team&lt;/a&gt; (&lt;a href=&quot;http://wiki.scribus.net/index.php/SoC2007_ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/scummvm/about.html&quot; rel=&quot;nofollow&quot;&gt;ScummVM&lt;/a&gt; (&lt;a href=&quot;http://wiki.scummvm.org/index.php/OpenTasks&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/silverstripe/about.html&quot; rel=&quot;nofollow&quot;&gt;SilverStripe CMS &amp;amp; Framework&lt;/a&gt; (&lt;a href=&quot;http://www.silverstripe.com/google-summer-of-code-2007-project-ideas/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/sipcomm/about.html&quot; rel=&quot;nofollow&quot;&gt;SIP Communicator&lt;/a&gt; (&lt;a href=&quot;http://sip-communicator.org/gsoc&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/stsci/about.html&quot; rel=&quot;nofollow&quot;&gt;The Space Telescope Science Institute&lt;/a&gt; (&lt;a href=&quot;http://www.stsci.edu/~aconti/GSoC.htm&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/sparse/about.html&quot; rel=&quot;nofollow&quot;&gt;Sparse&lt;/a&gt; (&lt;a href=&quot;http://kernel.org/pub/software/devel/sparse/soc.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/squeak/about.html&quot; rel=&quot;nofollow&quot;&gt;Squeak&lt;/a&gt; (&lt;a href=&quot;http://wiki.squeak.org/squeak/5936&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/squirrel/about.html&quot; rel=&quot;nofollow&quot;&gt;SquirrelMail&lt;/a&gt; (&lt;a href=&quot;http://www.squirrelmail.org/wiki/SummerOfCode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/svn/about.html&quot; rel=&quot;nofollow&quot;&gt;Subversion&lt;/a&gt; (&lt;a href=&quot;http://subversion.tigris.org/project_tasks.html&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/swarm/about.html&quot; rel=&quot;nofollow&quot;&gt;Swarm Development Group&lt;/a&gt; (&lt;a href=&quot;http://www.swarm.org/wiki/Swarm:_IdeasList&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/smc/about.html&quot; rel=&quot;nofollow&quot;&gt;Swathanthra Malayalam Computing&lt;/a&gt; (&lt;a href=&quot;http://fci.wikia.com/wiki/SMC/SoC/2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/taste/about.html&quot; rel=&quot;nofollow&quot;&gt;Taste&lt;/a&gt; (&lt;a href=&quot;http://sourceforge.net/forum/message.php?msg_id=4198871&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/parsec/about.html&quot; rel=&quot;nofollow&quot;&gt;Thousand Parsec&lt;/a&gt; (&lt;a href=&quot;http://www.thousandparsec.net/tp/google-summer-of-code-2007.php&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/ubuntu/about.html&quot; rel=&quot;nofollow&quot;&gt;Ubuntu&lt;/a&gt; (&lt;a href=&quot;https://wiki.ubuntu.com/GoogleSoC2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/umit/about.html&quot; rel=&quot;nofollow&quot;&gt;Umit Project&lt;/a&gt; (&lt;a href=&quot;http://umit.sourceforge.net/umit_proposals_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/videolan/about.html&quot; rel=&quot;nofollow&quot;&gt;VideoLAN&lt;/a&gt; (&lt;a href=&quot;http://wiki.videolan.org/SoC_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/vim/about.html&quot; rel=&quot;nofollow&quot;&gt;Vim&lt;/a&gt; (&lt;a href=&quot;http://www.vim.org/soc/ideas.php&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/wikimedia/about.html&quot; rel=&quot;nofollow&quot;&gt;Wikimedia Foundation&lt;/a&gt; (&lt;a href=&quot;http://meta.wikimedia.org/wiki/Summer_of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/wine/about.html&quot; rel=&quot;nofollow&quot;&gt;The Wine Project&lt;/a&gt; (&lt;a href=&quot;http://wiki.winehq.org/SummerOfCode&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/winlibre/about.html&quot; rel=&quot;nofollow&quot;&gt;WinLibre&lt;/a&gt; (&lt;a href=&quot;http://www.winlibre.com/wiki/doku.php?id=winlibre_soc_2007:proposals_for_the_google_summer_of_code_program_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/wordpress/about.html&quot; rel=&quot;nofollow&quot;&gt;WordPress&lt;/a&gt; (&lt;a href=&quot;http://codex.wordpress.org/GSoC2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/wxpython/about.html&quot; rel=&quot;nofollow&quot;&gt;wxPython&lt;/a&gt; (&lt;a href=&quot;http://wiki.wxpython.org/index.cgi/Google_SoC_Project_Ideas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/wxwidgets/about.html&quot; rel=&quot;nofollow&quot;&gt;wxWidgets&lt;/a&gt; (&lt;a href=&quot;http://www.wxwidgets.org/wiki/index.php/Development:_Student_Projects&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/xorg/about.html&quot; rel=&quot;nofollow&quot;&gt;X.Org&lt;/a&gt; (&lt;a href=&quot;http://xorg.freedesktop.org/wiki/SummerOfCodeIdeas&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/xiph/about.html&quot; rel=&quot;nofollow&quot;&gt;Xiph.org Foundation&lt;/a&gt; (&lt;a href=&quot;http://wiki.xiph.org/index.php/Summer_of_Code&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/xmms2/about.html&quot; rel=&quot;nofollow&quot;&gt;XMMS2&lt;/a&gt; (&lt;a href=&quot;http://wiki.xmms2.xmms.se/index.php/Summer_of_Code_2007/Proposed_projects&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/xmpp/about.html&quot; rel=&quot;nofollow&quot;&gt;XMPP Standards Foundation&lt;/a&gt; (&lt;a href=&quot;http://wiki.jabber.org/index.php/Summer_of_Code_2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/xwiki/about.html&quot; rel=&quot;nofollow&quot;&gt;XWiki&lt;/a&gt; (&lt;a href=&quot;http://www.xwiki.org/xwiki/bin/view/GoogleSummerOfCode/&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;div&gt;&lt;a href=&quot;http://code.google.com/soc/2007/zope/about.html&quot; rel=&quot;nofollow&quot;&gt;Zope Foundation, Inc&lt;/a&gt; (&lt;a href=&quot;http://wiki.zope.org/zope3/SummerOfCode2007&quot; rel=&quot;nofollow&quot;&gt;ideas&lt;/a&gt;) &lt;/div&gt;            &lt;/td&gt;        &lt;/tr&gt;    &lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;We are no longer accepting applications from open source organizations.&lt;/p&gt;&lt;p&gt;If you're feeling nostalgic, you can still access the &lt;a href=&quot;http://code.google.com/soc/2005/&quot;&gt;&lt;em&gt;Google Summer of Code&lt;/em&gt; 2005&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/soc/2006/&quot;&gt;&lt;em&gt;Google Summer of Code&lt;/em&gt; 2006&lt;/a&gt; pages. We've also created a &lt;a href=&quot;http://code.google.com/soc/soc_map.kml&quot;&gt;map&lt;/a&gt; (requires &lt;a href=&quot;http://earth.google.com/&quot;&gt;Google Earth&lt;/a&gt;) of all 2006 mentors and student participants for your perusal.&lt;/p&gt;&lt;h3&gt;Questions?&lt;/h3&gt;&lt;p&gt;Please peruse our &lt;a href=&quot;http://code.google.com/support/bin/topic.py?topic=10442&quot;&gt;FAQ&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/soc/tos.html&quot;&gt;Terms of Service&lt;/a&gt; for more information about the program. If you still have questions, email us for &lt;a href=&quot;mailto:gsoc@google.com&quot;&gt;support&lt;/a&gt;&lt;/p&gt;</description><category>『GOOGLE开发』</category><pubDate>Mon, 06 Aug 2007 18:09:06 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/GoogleDevelopment/200708/72.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-08-06T10:09:06Z</dc:date><fs:srclink>http://blog.mobilelook.cn/GoogleDevelopment/200708/72.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/15226854/1503640</fs:itemid></item><item><title>Query API Developer Guide</title><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/15091840/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=71</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=71&amp;key=d068f12e</trackback:ping><description>&lt;h1 id=&quot;page_title&quot;&gt;Query API Developer Guide&lt;/h1&gt;&lt;p&gt;Google Desktop indexes, caches, and searches content on your computer. Through the Google Desktop Query API, your applications can send search queries directly to Google Desktop and process its search results.&lt;/p&gt;&lt;h3&gt;Contents&lt;/h3&gt;&lt;ol class=&quot;toc&quot;&gt;    &lt;li&gt;&lt;a href=&quot;#gettingstarted&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Getting Started&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#registering&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Registering With the Query API&lt;/font&gt;&lt;/a&gt;    &lt;ol&gt;        &lt;li&gt;&lt;a href=&quot;#registeringnative&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Native Plug-in Registration&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#registeringscript&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Script Plug-in Registration&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;/ol&gt;    &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#queryobjects&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Query Objects&lt;/font&gt;&lt;/a&gt;    &lt;ol&gt;        &lt;li&gt;&lt;a href=&quot;#querynative&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Query Methods for Native Plug- Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#queryscript&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Query Methods for Script Plug- Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;/ol&gt;    &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#queryex&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;QueryEx Query Objects&lt;/font&gt;&lt;/a&gt;    &lt;ol&gt;        &lt;li&gt;&lt;a href=&quot;#queryexnative&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;QueryEx for Native Plug-Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#queryexscript&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;QueryEx for Script Plug-Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;/ol&gt;    &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#resultobjects&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Result Objects&lt;/font&gt;&lt;/a&gt;    &lt;ol&gt;        &lt;li&gt;&lt;a href=&quot;#resultobjectsnative&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Result Objects for Native Plug- Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#resultobjectsscript&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Result Objects for Script Plug- Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;/ol&gt;    &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#individualresult&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Individual Search Result Objects&lt;/font&gt;&lt;/a&gt;    &lt;ol&gt;        &lt;li&gt;&lt;a href=&quot;#individualresultnative&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Individual Search Result Objects for Native Plug-Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#individualresultscript&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Individual Search Result Objects for Script Plug-Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;/ol&gt;    &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#itemversions&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Item Versions&lt;/font&gt;&lt;/a&gt;    &lt;ol&gt;        &lt;li&gt;&lt;a href=&quot;#itemversionsnative&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Item Versions for Native Plug- Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#itemversionsscript&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Item Versions for Script Plug- Ins&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;/ol&gt;    &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;#httpxml&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;HTTP/XML-Based Query API&lt;/font&gt;&lt;/a&gt;    &lt;ol&gt;        &lt;li&gt;&lt;a href=&quot;#gettingstarted2&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Getting Started&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#requesting&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Requesting a Desktop Search&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#searchurl&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Getting the Stored Query URL&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href=&quot;#results&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Desktop Search Results&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;    &lt;/ol&gt;    &lt;/li&gt;&lt;/ol&gt;&lt;a name=&quot;gettingstarted&quot;&gt;&lt;/a&gt;&lt;h1&gt;Getting Started&lt;/h1&gt;&lt;p&gt;The Query API described in the first part of this document was introduced with Google Desktop 3. We cover how to use it with both native plug-ins and script-based plug-ins, and assume that you are familiar with the general principles of how to write Desktop plug-ins.&lt;/p&gt;&lt;p&gt;The latter part of this document describes methods for issuing Desktop search queries using HTTP and XML. This XML-based API is supported by both the Windows and Mac OS X versions of Google Desktop. Mac OS X support was added in Google Desktop Mac 1.0.3. &lt;/p&gt;&lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;a name=&quot;registering&quot;&gt;&lt;/a&gt;&lt;h1&gt;Registering With the Query API&lt;/h1&gt;&lt;p&gt;You can only use the Query API if you have registered with it and thus obtained a Query API registration cookie. Note that this is in addition to the general registration of your plug-in with Google Desktop.&lt;/p&gt;&lt;p&gt;There are two types of Query API registration cookies, &lt;em&gt;read-only&lt;/em&gt; and &lt;em&gt;read- write&lt;/em&gt;. Usually, you'll only need a read-only cookie. The read-write cookie is only needed when you remove an item from the Google Desktop index.&lt;/p&gt;&lt;p&gt;We recommend that your plug-in encrypt the registration cookie when it saves it, and, of course, be able to decrypt it when you pass it to the various Query API methods and objects.&lt;/p&gt;&lt;p&gt;You'll need a global identifier (GUID) for your plug-in to pass to the registration method. You can use a tool such as &lt;code&gt;guidgen.exe&lt;/code&gt; to generate one.&lt;/p&gt;&lt;a name=&quot;registeringnative&quot;&gt;&lt;/a&gt;&lt;h2&gt;Native Plug-in Registration&lt;/h2&gt;&lt;p&gt;If you are writing a native plug-in, the following summarizes the registration interface and its method. All method return values are of type &lt;code&gt;HRESULT&lt;/code&gt;.&lt;/p&gt;&lt;h3&gt;&lt;code&gt;interface IGoogleDesktopRegisterQueryPlugin: IDispatch&lt;/code&gt;&lt;/h3&gt;&lt;p class=&quot;note&quot;&gt;&lt;strong&gt;Note: &lt;/strong&gt;Components are required to call this interface to register themselves with the Google Desktop Query API before they can make use of that API. &lt;/p&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;RegisterPlugin&lt;/code&gt;: Must be invoked by any component to register with the Query API.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;BSTR plugin_class&lt;/code&gt;: The component's GUID or ProgID. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;VARIANT_BOOL read_only&lt;/code&gt;: If &lt;code&gt;true&lt;/code&gt;, you can do search queries but cannot delete items from the index. A &lt;code&gt;false&lt;/code&gt; value gives you both read and write access, allowing you to delete index items. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;[out, retval] long* cookie&lt;/code&gt; : Returns the registration cookie. Save this value, as you will have to use it whenever you make a query or remove an item from the Desktop index via the Query API. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure, such as an unregistered component classID or appID, component prohibited by policy, etc. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a name=&quot;registeringscript&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;Script Plug-in Registration&lt;/h2&gt;&lt;p&gt;If you are writing a script-based plug-in, see &lt;code&gt;register_script_sample.js&lt;/code&gt; for a complete example of registering with the Query API using JavaScript. The gist is the following code: &lt;/p&gt;&lt;p&gt;try { // Instantiate the Google Desktop registrar component by creating // an ActiveX registration object. var registrar = new ActiveXObject(&amp;quot;GoogleDesktop.Registrar&amp;quot;); // Give it our plug-in GUID and description registrar.StartComponentRegistration(g_scriptSampleId, componentDescription); // Ask for the specific registration object that gives us Query API access. var regObj = registrar.GetRegistrationInterface (&amp;quot;GoogleDesktop.QueryRegistration&amp;quot;); // Now ask that registration object to give us a cookie representing // our Query API access. Note the read_only flag argument here; // if false, then we're asking for read-write access instead of // just read-only access. cookie = regObj.RegisterPlugin(g_scriptSampleId, read_only); // Now submit and hope the user will accept this component. // If not, then an error will be thrown registrar.FinishComponentRegistration ();} catch (e) { // We hit an error message(&amp;quot;Couldn't register the script samples.\n&amp;quot; + new String(e.number) + &amp;quot;\n&amp;quot; + e.description); return 0;}&lt;/p&gt;&lt;p&gt;Note that you need to save the cookie value, as you will have to use it whenever you make a query or remove an item from the Desktop index via the Query API.&lt;/p&gt;&lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;h1&gt;&lt;a id=&quot;queryobjects&quot; name=&quot;queryobjects&quot;&gt;&lt;/a&gt;Query Objects&lt;/h1&gt;&lt;p&gt;The Query API has one root object, &lt;code&gt;IGoogleDesktopQueryAPI&lt;/code&gt; for native plug-ins, &lt;code&gt;GoogleDesktop.QueryAPI&lt;/code&gt; for script plug-ins, that supports two methods: &lt;/p&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;Query&lt;/code&gt;: Immediately executes the specified desktop search query and returns a result object that contains all the search results for the query. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;QueryEx&lt;/code&gt;: Returns a query object which does not (yet) actually execute the query. Instead, you can tweak some custom parameters first, then execute the revised query. When executed, it returns the same type of result object as &lt;code&gt;Query&lt;/code&gt;. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The &lt;code&gt;Query&lt;/code&gt; and &lt;code&gt;QueryEx&lt;/code&gt; root object methods both take the following arguments: &lt;/p&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;cookie&lt;/code&gt;: The security cookie created when you registered your plug-in with the Query API. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;query&lt;/code&gt;: The search query string, which can include the &lt;a href=&quot;http://desktop.google.com/features.html#advancedsearch&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;same set of query operators&lt;/font&gt;&lt;/a&gt; that you could use in a query typed into a Google Desktop search box. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;category&lt;/code&gt;: Optional string argument that lets you restrict results to those of a particular type. Valid values are &lt;code&gt;email&lt;/code&gt;, &lt;code&gt;web&lt;/code&gt;, &lt;code&gt;im&lt;/code&gt;, &lt;code&gt;file&lt;/code&gt;, &lt;code&gt;contact&lt;/code&gt;, &lt;code&gt;calendar&lt;/code&gt;, &lt;code&gt;task&lt;/code&gt;, &lt;code&gt;note&lt;/code&gt;, or &lt;code&gt;journal&lt;/code&gt;. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;ranking&lt;/code&gt;: Optional numeric argument specifying whether the search results will be ranked by date (&lt;code&gt;RECENCY_RANKING&lt;/code&gt; = 1), the default, or by relevance (&lt;code&gt;RELEVANCE_RANKING&lt;/code&gt; = 0). &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;a name=&quot;querynative&quot;&gt;&lt;/a&gt;&lt;h2&gt;Query Methods for Native Plug-Ins&lt;/h2&gt;&lt;h3&gt;&lt;code&gt;interface IGoogleDesktopQueryAPI: IDispatch&lt;/code&gt;&lt;/h3&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;Query&lt;/code&gt;: Immediately takes the specified search query and executes it with default option values.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;long cookie&lt;/code&gt;: The component's Query API security cookie. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;BSTR query&lt;/code&gt;: The search query string, which can contain any of &lt;a href=&quot;http://desktop.google.com/features.html#advancedsearch&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;the allowed Desktop search operators&lt;/font&gt;&lt;/a&gt;. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;VARIANT category&lt;/code&gt;: [Optional] &lt;/li&gt;            &lt;li&gt;&lt;code&gt;VARIANT ranking&lt;/code&gt;: [Optional] &lt;/li&gt;            &lt;li&gt;&lt;code&gt;[out, retval] IGoogleDesktopQueryResultSet** results&lt;/code&gt;: The search results from having automatically executed a desktop search for the search query. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;br /&gt;    &lt;/li&gt;    &lt;li&gt;&lt;code&gt;QueryEx&lt;/code&gt;: Returns a query object that does not automatically execute a search. Instead, you can alter the query's properties and exert finer control over the search, and then execute the query.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;long cookie&lt;/code&gt;: The component's Query API security cookie. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;BSTR query&lt;/code&gt;: The search query string, which can contain any of &lt;a href=&quot;http://desktop.google.com/features.html#advancedsearch&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;the allowed Desktop search operators&lt;/font&gt;&lt;/a&gt;. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;VARIANT category&lt;/code&gt;: [Optional] &lt;/li&gt;            &lt;li&gt;&lt;code&gt;VARIANT ranking&lt;/code&gt;: [Optional] &lt;/li&gt;            &lt;li&gt;&lt;code&gt;[out, retval] IGoogleDesktopQuery** q)&lt;/code&gt; : An unexecuted query object, which you can alter the default properites and parameters of before running a search on its search query. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;&lt;/ul&gt;&lt;a name=&quot;queryscript&quot;&gt;&lt;/a&gt;&lt;h2&gt;Query Methods for Script Plug-Ins&lt;/h2&gt;&lt;p&gt;In JavaScript, you just create the base object and then create and run the Query in one step. &lt;/p&gt;&lt;p&gt;// Instantiate the main query api objectvar qapi = new ActiveXObject (&amp;quot;GoogleDesktop.QueryAPI&amp;quot;);// Perform the query and get a recordset object back containing the// search results.var set = qapi.Query(cookie, search_string);&lt;/p&gt;&lt;p&gt;See the &lt;code&gt;simple_query.js &lt;/code&gt;example for a detailed example.&lt;/p&gt;&lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;a name=&quot;queryex&quot;&gt;&lt;/a&gt;&lt;h1&gt;QueryEx Query Objects&lt;/h1&gt;&lt;p&gt;If you run the &lt;code&gt;QueryEx()&lt;/code&gt; method, it returns a Query object for which you can change any or all of these four options before executing the query: &lt;/p&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;async&lt;/code&gt;: By setting this to &lt;code&gt;false&lt;/code&gt;, all result items are fetched before the &lt;code&gt;Execute()&lt;/code&gt; method completes. The default value is &lt;code&gt;true&lt;/code&gt;. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;filter_duplicates&lt;/code&gt;: By setting to &lt;code&gt;false&lt;/code&gt;, you'll get all the items that match, including any duplicates of already matched items. Default is &lt;code&gt;true&lt;/code&gt;. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;match_all_terms&lt;/code&gt;: When set to &lt;code&gt;false&lt;/code&gt;, if there are multiple query terms, any item matching just one of the query terms is returned. Otherwise, a result must match all of the query terms. Default is &lt;code&gt;true&lt;/code&gt;. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;blacklisting&lt;/code&gt;: By setting to &lt;code&gt;false&lt;/code&gt;, items in the search results do not go through the default blacklisting filters. Default is &lt;code&gt;true&lt;/code&gt;. If you turn this off, you'll most likely see spam email, secure content, bad urls such as about:, res:, etc. in addition to your good results. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;To change an option value, use the &lt;code&gt;SetOption()&lt;/code&gt; method, one of four methods associated with Query objects. These are: &lt;/p&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;SetOption&lt;/code&gt;: Takes arguments, in this order, of what option to set and what value to set it to. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;GetOption&lt;/code&gt;: Takes an option name, returns its value. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;query&lt;/code&gt;: Takes no arguments, returns a string containing the search query. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;Execute&lt;/code&gt;: Once you've finished setting the Query object's options, run this method to actually run the search. Returns a query result set. &lt;/li&gt;&lt;/ul&gt;&lt;a name=&quot;queryexnative&quot;&gt;&lt;/a&gt;&lt;h2&gt;QueryEx for Native Plug-Ins&lt;/h2&gt;&lt;p&gt;&lt;code&gt;QueryEx&lt;/code&gt;'s returned object, &lt;code&gt;IGoogleDektopQuery&lt;/code&gt;, has the following interface: &lt;/p&gt;&lt;h3&gt;&lt;code&gt;interface IGoogleDesktopQuery: IDispatch&lt;/code&gt;&lt;/h3&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;SetOption&lt;/code&gt;: Set an option value.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;BSTR name&lt;/code&gt;: Which option to set. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;VARIANT value&lt;/code&gt;: What value to set the option to. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;&lt;code&gt;GetOption&lt;/code&gt;: Get an option value.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;BSTR name&lt;/code&gt;: Which option to get the value of. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;[out, retval] VARIANT* value&lt;/code&gt;: The option's value. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;&lt;code&gt;query&lt;/code&gt;: Get the search query string.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;[out, retval] BSTR* ret&lt;/code&gt;: The search query string. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;&lt;code&gt;Execute&lt;/code&gt;: Execute the search as specified by the QueryEx object's query string and option values.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;[out, retval] IGoogleDesktopQueryResultSet** results&lt;/code&gt;: Results from the search. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;a name=&quot;queryexscript&quot;&gt;&lt;/a&gt;&lt;h2&gt;QueryEx for Script Plug-Ins&lt;/h2&gt;&lt;p&gt;The following code using &lt;code&gt;QueryEx&lt;/code&gt; comes from the &lt;code&gt;item_count.js&lt;/code&gt; example. It shows the usual series of events when using &lt;code&gt;QueryEx&lt;/code&gt;; call &lt;code&gt;QueryEx&lt;/code&gt; on the base Query API object to get a Query object, set Query object options with &lt;code&gt;SetOption()&lt;/code&gt;, then call &lt;code&gt;Execute()&lt;/code&gt; on the Query object and get back a recordset of the search results. &lt;/p&gt;&lt;p&gt;var q = new ActiveXObject(&amp;quot;GoogleDesktop.QueryAPI&amp;quot;);// Call the QueryEx method so that we can turn off the asynchronous// loading of record items.var qx = q.QueryEx (g_securityCookie, query);// Turn off the default asynchronous behavior.qx.SetOption (&amp;quot;async&amp;quot;, false);// Execute the query synchronously and get back a recordset objectvar set = qx.Execute();&lt;/p&gt;&lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;a name=&quot;resultobjects&quot;&gt;&lt;/a&gt;&lt;h1&gt;Result Objects&lt;/h1&gt;&lt;p&gt;When you execute a &lt;code&gt;Query&lt;/code&gt; or &lt;code&gt;QueryEx&lt;/code&gt;, it returns a result set object. This object contains individual result item objects, each of which represents a single search result.&lt;/p&gt;&lt;p&gt;Unless you used &lt;code&gt;QueryEx&lt;/code&gt; and changed the default value of the Query object's &lt;code&gt;async&lt;/code&gt; option to &lt;code&gt;false&lt;/code&gt; from its default value &lt;code&gt;true&lt;/code&gt; before executing the query, you can access search results before the search has completely finished. To find out if a search has completed, check the resultset's &lt;code&gt;readystate&lt;/code&gt; property, which can have three values: &lt;/p&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;GD_QRS_UNITIALIZED = 0&lt;/code&gt;: Search has not yet started. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;GD_QRS_LOADING = 1&lt;/code&gt;: Search is still in progress. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;GD_QRS_COMPLETE = 2&lt;/code&gt;: Search is complete, with all results received and in the resultset. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There are four methods associated with result set objects: &lt;/p&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;readystate&lt;/code&gt;: Takes no arguments, returns the current &lt;code&gt;readystate&lt;/code&gt; value. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;count&lt;/code&gt;: Takes no arguments, returns the total number of individual search result items in the recordset. Note that this number will change as long as results are still arriving. Until &lt;code&gt;readystate&lt;/code&gt; is &lt;code&gt;GD_QRS_COMPLETE&lt;/code&gt;, this value is an estimate. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;Next&lt;/code&gt;: Takes no arguments, returns the next individual search result in the set. If results are still arriving and &lt;code&gt;Next()&lt;/code&gt; is at the end of the current results, it will wait until the next result arrives. If you reach the end of the results after all results are in the recordset, &lt;code&gt;Next()&lt;/code&gt; returns &lt;code&gt;null&lt;/code&gt;. &lt;/li&gt;    &lt;li&gt;&lt;code&gt;available_count&lt;/code&gt;: Takes no arguments, returns how many individual results can be fetched via calls to &lt;code&gt;next()&lt;/code&gt; without it blocking while waiting for more results. &lt;/li&gt;&lt;/ul&gt;&lt;a name=&quot;resultobjectsnative&quot;&gt;&lt;/a&gt;&lt;h2&gt;Result Objects for Native Plug-Ins&lt;/h2&gt;&lt;h3&gt;&lt;code&gt;interface IGoogleDesktopQueryResultSet: IDispatch&lt;/code&gt;&lt;/h3&gt;&lt;ul&gt;    &lt;li&gt;&lt;code&gt;Next&lt;/code&gt;: Returns the next individual search result in the set. If results are still arriving, it waits for the next result to arrive before returning it. If called after reaching the final result, it returns &lt;code&gt;S_FALSE&lt;/code&gt; and &lt;code&gt;null&lt;/code&gt;.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;[out, retval] IGoogleDesktopQueryResultItem** next&lt;/code&gt;: An individual search result. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;&lt;code&gt;S_FALSE&lt;/code&gt; and &lt;code&gt;null&lt;/code&gt; if called after the last result has already been returned. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;&lt;code&gt;readystate&lt;/code&gt;: Returns the current &lt;code&gt;readystate&lt;/code&gt; value, which can be    &lt;ul&gt;        &lt;li&gt;&lt;code&gt;GD_QRS_UNINITIALIZED = 0&lt;/code&gt; &lt;/li&gt;        &lt;li&gt;&lt;code&gt;GD_QRS_LOADING = 1&lt;/code&gt; (Still receiving results) &lt;/li&gt;        &lt;li&gt;&lt;code&gt;GD_QRS_COMPLETE = 2&lt;/code&gt; (All results received) &lt;/li&gt;    &lt;/ul&gt;    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;[out, retval] QRSReadyState* state&lt;/code&gt;: &lt;code&gt;readystate&lt;/code&gt;'s value. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;&lt;code&gt;count&lt;/code&gt;: Returns the total number of individual search result items. Note that this number will change so long as individual results are still arriving. Until the &lt;code&gt;readystate&lt;/code&gt; value becomes &lt;code&gt;GD_QRS_COMPLETE&lt;/code&gt;, this value is an estimate. After that, it is the exact and total number of individual search results.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;[out, retval] long* ret&lt;/code&gt;: &lt;code&gt;Number of results&lt;/code&gt; &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;&lt;code&gt;available_count&lt;/code&gt;: Returns the value of how many individual results can currently be fetched via calls to &lt;code&gt;next()&lt;/code&gt; without blocking.    &lt;ul&gt;        &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;[out, retval] long* available_count&lt;/code&gt; : Current remaining number of available search results. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:        &lt;ul&gt;            &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;            &lt;li&gt;Appropriate error on failure. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;&lt;/ul&gt;&lt;a name=&quot;resultobjectsscript&quot;&gt;&lt;/a&gt;&lt;h2&gt;Result Objects for Script Plug-Ins&lt;/h2&gt;&lt;p&gt;To iterate through a result set's individual results in JavaScript, you'd write something like: &lt;/p&gt;&lt;p&gt;var item;while ((item = results.Next()) != null) { // process item here}&lt;/p&gt;&lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;a name=&quot;individualresult&quot;&gt;&lt;/a&gt;&lt;h1&gt;Individual Search Result Objects&lt;/h1&gt;&lt;p&gt;Result item objects each contain a single search result. The key method is &lt;code&gt;GetProperty&lt;/code&gt;, which takes a property name and returns its value for the result. The complete list of valid property names is quite long; the ones you'll probably use most often are &lt;code&gt;content&lt;/code&gt;, &lt;code&gt;uri&lt;/code&gt;, &lt;code&gt;summary&lt;/code&gt;, and for email &lt;code&gt;from&lt;/code&gt;, &lt;code&gt;to&lt;/code&gt;, and &lt;code&gt;subject&lt;/code&gt;. &lt;/p&gt;&lt;p&gt;To avoid errors due to trying to get a value for a property that doesn't exist for a result type (for example, a file doesn't have a &lt;code&gt;from&lt;/code&gt; property), you should first use the &lt;code&gt;schema&lt;/code&gt; method to determine the result's type. The following schemas are defined in the Desktop SDK IDL: &lt;/p&gt;&lt;ul&gt;&lt;code&gt;    &lt;li&gt;&amp;quot;web&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;text&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;media&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;office&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;file&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;calendar&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;contact&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;email&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;im&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;note&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;journal&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;task&amp;quot; &lt;/li&gt;    &lt;li&gt;&amp;quot;shortcut&amp;quot; &lt;/li&gt;    &lt;/code&gt;&lt;/ul&gt;    &lt;p&gt;&amp;nbsp;&lt;/p&gt;    &lt;p&gt;If you try to get a value for a property the result doesn't have, an error is returned. For scripts, that means an exception is thrown, so remember to use exception handling in your script plug-ins.&lt;/p&gt;    &lt;p&gt;There are four methods associated with result item objects: &lt;/p&gt;    &lt;ul&gt;        &lt;li&gt;&lt;code&gt;GetProperty&lt;/code&gt;: Takes a property name argument, returns that property's value. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;schema&lt;/code&gt;: Takes no arguments, returns the name of the item's schema. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;versions&lt;/code&gt;: Takes no arguments, returns either a list of emails in this item's thread (if the item is an email) or a list of all file versions (if the item is a file) in the Desktop index. These are returned as a document versions object. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;RemoveFromIndex&lt;/code&gt;: Takes one argument, which if &lt;code&gt;true&lt;/code&gt; (the default value) removes this item and all its versions from the Desktop index. If &lt;code&gt;false&lt;/code&gt;, only this individual item is removed. Remember, you must have a read-write Query API registration cookie for this method to work. If you don't have one, you'll get an &amp;quot;Access Denied&amp;quot; error. &lt;/li&gt;    &lt;/ul&gt;    &lt;p&gt;&amp;nbsp;&lt;/p&gt;    &lt;p&gt;The complete property set is: &lt;/p&gt;    &lt;table class=&quot;columns&quot;&gt;        &lt;tbody&gt;            &lt;tr&gt;                &lt;td&gt;                &lt;ul class=&quot;nolist&quot;&gt;                    &lt;li&gt;actual_work &lt;/li&gt;                    &lt;li&gt;album_title &lt;/li&gt;                    &lt;li&gt;artist &lt;/li&gt;                    &lt;li&gt;assistant &lt;/li&gt;                    &lt;li&gt;attendees &lt;/li&gt;                    &lt;li&gt;author &lt;/li&gt;                    &lt;li&gt;bcc &lt;/li&gt;                    &lt;li&gt;birthday &lt;/li&gt;                    &lt;li&gt;bit_rate &lt;/li&gt;                    &lt;li&gt;bookmarked &lt;/li&gt;                    &lt;li&gt;buddy_name &lt;/li&gt;                    &lt;li&gt;business_address &lt;/li&gt;                    &lt;li&gt;business_fax &lt;/li&gt;                    &lt;li&gt;business_home_page &lt;/li&gt;                    &lt;li&gt;business_phone &lt;/li&gt;                    &lt;li&gt;categories &lt;/li&gt;                    &lt;li&gt;cc &lt;/li&gt;                    &lt;li&gt;channels &lt;/li&gt;                    &lt;li&gt;children_names &lt;/li&gt;                    &lt;li&gt;comment &lt;/li&gt;                    &lt;li&gt;companies &lt;/li&gt;                    &lt;li&gt;company &lt;/li&gt;                    &lt;li&gt;company_name &lt;/li&gt;                &lt;/ul&gt;                &lt;/td&gt;                &lt;td style=&quot;PADDING-LEFT: 1em&quot;&gt;                &lt;ul class=&quot;nolist&quot; style=&quot;PADDING-LEFT: 0px&quot;&gt;                    &lt;li&gt;company_phone &lt;/li&gt;                    &lt;li&gt;component_guid &lt;/li&gt;                    &lt;li&gt;component_id &lt;/li&gt;                    &lt;li&gt;content &lt;/li&gt;                    &lt;li&gt;conversation_id &lt;/li&gt;                    &lt;li&gt;cookie &lt;/li&gt;                    &lt;li&gt;cookie_raw &lt;/li&gt;                    &lt;li&gt;country &lt;/li&gt;                    &lt;li&gt;data_rate &lt;/li&gt;                    &lt;li&gt;date &lt;/li&gt;                    &lt;li&gt;date_completed &lt;/li&gt;                    &lt;li&gt;department &lt;/li&gt;                    &lt;li&gt;display_name &lt;/li&gt;                    &lt;li&gt;doc_id &lt;/li&gt;                    &lt;li&gt;due_date &lt;/li&gt;                    &lt;li&gt;duration &lt;/li&gt;                    &lt;li&gt;email1 &lt;/li&gt;                    &lt;li&gt;email2 &lt;/li&gt;                    &lt;li&gt;email3 &lt;/li&gt;                    &lt;li&gt;end_date &lt;/li&gt;                    &lt;li&gt;event_id &lt;/li&gt;                    &lt;li&gt;extra_binary_data &lt;/li&gt;                    &lt;li&gt;extra_data &lt;/li&gt;                &lt;/ul&gt;                &lt;/td&gt;                &lt;td style=&quot;PADDING-LEFT: 1em&quot;&gt;                &lt;ul class=&quot;nolist&quot; style=&quot;PADDING-LEFT: 0px&quot;&gt;                    &lt;li&gt;flags &lt;/li&gt;                    &lt;li&gt;folder_name &lt;/li&gt;                    &lt;li&gt;format &lt;/li&gt;                    &lt;li&gt;from &lt;/li&gt;                    &lt;li&gt;genre &lt;/li&gt;                    &lt;li&gt;height &lt;/li&gt;                    &lt;li&gt;hobbies &lt;/li&gt;                    &lt;li&gt;home_address &lt;/li&gt;                    &lt;li&gt;home_fax &lt;/li&gt;                    &lt;li&gt;home_phone &lt;/li&gt;                    &lt;li&gt;im_address &lt;/li&gt;                    &lt;li&gt;importance &lt;/li&gt;                    &lt;li&gt;info_tip &lt;/li&gt;                    &lt;li&gt;interaction_period &lt;/li&gt;                    &lt;li&gt;internet_shortcut_name &lt;/li&gt;                    &lt;li&gt;job_title &lt;/li&gt;                    &lt;li&gt;keywords &lt;/li&gt;                    &lt;li&gt;language &lt;/li&gt;                    &lt;li&gt;last_modified_time &lt;/li&gt;                    &lt;li&gt;length &lt;/li&gt;                    &lt;li&gt;location &lt;/li&gt;                    &lt;li&gt;lyrics &lt;/li&gt;                    &lt;li&gt;machine_name &lt;/li&gt;                &lt;/ul&gt;                &lt;/td&gt;                &lt;td style=&quot;PADDING-LEFT: 1em&quot;&gt;                &lt;ul class=&quot;nolist&quot; style=&quot;PADDING-LEFT: 0px&quot;&gt;                    &lt;li&gt;mail_flags &lt;/li&gt;                    &lt;li&gt;mail_header &lt;/li&gt;                    &lt;li&gt;mail_id &lt;/li&gt;                    &lt;li&gt;manager_name &lt;/li&gt;                    &lt;li&gt;message_time &lt;/li&gt;                    &lt;li&gt;mobile_phone &lt;/li&gt;                    &lt;li&gt;native_size &lt;/li&gt;                    &lt;li&gt;nickname &lt;/li&gt;                    &lt;li&gt;office_location &lt;/li&gt;                    &lt;li&gt;organizer &lt;/li&gt;                    &lt;li&gt;original_date &lt;/li&gt;                    &lt;li&gt;other_address &lt;/li&gt;                    &lt;li&gt;other_phone &lt;/li&gt;                    &lt;li&gt;owner &lt;/li&gt;                    &lt;li&gt;pager &lt;/li&gt;                    &lt;li&gt;participants &lt;/li&gt;                    &lt;li&gt;percent_complete &lt;/li&gt;                    &lt;li&gt;personal_home_page &lt;/li&gt;                    &lt;li&gt;primary_fax &lt;/li&gt;                    &lt;li&gt;primary_phone &lt;/li&gt;                    &lt;li&gt;profession &lt;/li&gt;                    &lt;li&gt;received &lt;/li&gt;                    &lt;li&gt;recurrence_pattern &lt;/li&gt;                &lt;/ul&gt;                &lt;/td&gt;                &lt;td style=&quot;PADDING-LEFT: 1em&quot;&gt;                &lt;ul class=&quot;nolist&quot; style=&quot;PADDING-LEFT: 0px&quot;&gt;                    &lt;li&gt;replyto &lt;/li&gt;                    &lt;li&gt;shortcut_target &lt;/li&gt;                    &lt;li&gt;spouse &lt;/li&gt;                    &lt;li&gt;start_date &lt;/li&gt;                    &lt;li&gt;start_time &lt;/li&gt;                    &lt;li&gt;status &lt;/li&gt;                    &lt;li&gt;subject &lt;/li&gt;                    &lt;li&gt;text_content &lt;/li&gt;                    &lt;li&gt;thumbnail &lt;/li&gt;                    &lt;li&gt;thumbnail_format &lt;/li&gt;                    &lt;li&gt;timestamp &lt;/li&gt;                    &lt;li&gt;title &lt;/li&gt;                    &lt;li&gt;to &lt;/li&gt;                    &lt;li&gt;total_work &lt;/li&gt;                    &lt;li&gt;track_number &lt;/li&gt;                    &lt;li&gt;type &lt;/li&gt;                    &lt;li&gt;uri &lt;/li&gt;                    &lt;li&gt;user_name &lt;/li&gt;                    &lt;li&gt;web_page &lt;/li&gt;                    &lt;li&gt;wedding_anniversary &lt;/li&gt;                    &lt;li&gt;width &lt;/li&gt;                    &lt;li&gt;year_published &lt;/li&gt;                &lt;/ul&gt;                &lt;/td&gt;            &lt;/tr&gt;        &lt;/tbody&gt;    &lt;/table&gt;    &lt;a name=&quot;individualresultnative&quot;&gt;&lt;/a&gt;    &lt;h2&gt;Individual Search Result Items for Native Plug-ins&lt;/h2&gt;    &lt;p&gt;The following is the interface for &lt;code&gt;IGoogleDesktopQueryResultItem&lt;/code&gt;, the native plug-in individual result item.&lt;/p&gt;    &lt;h3&gt;&lt;code&gt;interface IGoogleDesktopQueryResultItem: IDispatch&lt;/code&gt;&lt;/h3&gt;    &lt;ul&gt;        &lt;li&gt;&lt;code&gt;GetProperty&lt;/code&gt;: Looks up and returns property values.        &lt;ul&gt;            &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;BSTR prop_name&lt;/code&gt;: Property name to look up the value of. &lt;/li&gt;                &lt;li&gt;&lt;code&gt;[out, retval] VARIANT* value&lt;/code&gt; : Value of the property argument for this result. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;            &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;                &lt;li&gt;Appropriate error on failure. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;code&gt;RemoveFromIndex&lt;/code&gt;: Removes either only this item or all versions of this item from the Desktop index (for email items, the latter means removing all messages in its thread). Note that you must have a read-write Query API registration cookie for this method to work; if not you'll get an &amp;quot;Access Denied&amp;quot; error.        &lt;ul&gt;            &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;VARIANT_BOOL remove_all_related_versions&lt;/code&gt; : If &lt;code&gt;VARIANT_TRUE&lt;/code&gt;, all versions are removed. If &lt;code&gt;VARIANT_FALSE&lt;/code&gt;, only this single item is removed. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;            &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;                &lt;li&gt;Appropriate error on failure. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;code&gt;schema&lt;/code&gt;: Returns the name of the item's schema.        &lt;ul&gt;            &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;[out, retval] BSTR* schema_name&lt;/code&gt; : Name of this item's schema &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;            &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;                &lt;li&gt;Appropriate error on failure. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;code&gt;versions&lt;/code&gt;: Returns either a list of emails in this item's thread (if the item is an email) or a list of all file versions (if the item is a file) in the Desktop index.        &lt;ul&gt;            &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;[out, retval] IGoogleDesktopDocumentVersions** ret&lt;/code&gt;: List of item's versions or other messages in its thread. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;            &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;                &lt;li&gt;Appropriate error on failure. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;a name=&quot;individualresultscript&quot;&gt;&lt;/a&gt;    &lt;h2&gt;Individual Search Result Items for Script Plug-ins&lt;/h2&gt;    &lt;p&gt;The following code from the &lt;code&gt;lucky.js&lt;/code&gt; example shows how to get various properties from each individual result item in a result set. The &lt;code&gt;message()&lt;/code&gt; method is a basic output method defined early in the script.&lt;/p&gt;    &lt;p&gt;//Get the next individual search result item from the recordset var item = set.Next()if (item != null) { // First output the URI of the item we found message(item(&amp;quot;uri&amp;quot;)); // Now output the text representation of the content message(item(&amp;quot;text_content&amp;quot;)); // Alternatively, we could output the content in its native form // message(item (&amp;quot;content&amp;quot;));} else { message(&amp;quot;no item found!&amp;quot;);}&lt;/p&gt;    &lt;p&gt;The &lt;code&gt;remove_from_index.js&lt;/code&gt; example shows first how to build a query whose results are restricted by being a specific filename in a specific folder, as well as a script that removes from the Desktop index all result items from a search query.&lt;/p&gt;    &lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;    &lt;a name=&quot;itemversions&quot;&gt;&lt;/a&gt;    &lt;h1&gt;Item Versions&lt;/h1&gt;    &lt;p&gt;The result item's &lt;code&gt;version&lt;/code&gt; property requires a bit of explanation. Its value is a document versions object, which is a collection of individual query result items. These are the same individual result items described in the previous section; in other words, an individual search result object can contain other individual result objects in its &lt;code&gt;version&lt;/code&gt; property.&lt;/p&gt;    &lt;p&gt;For an email message, its version contents are the other email messages in the same thread. For a file, its version contents are any other versions of that file, either from an earlier or a later time, indexed by Desktop.&lt;/p&gt;    &lt;p&gt;The method of accessing individual versions is different from how individual results are gotten from a search result recordset. The &lt;code&gt;count&lt;/code&gt; property's value is the number of versions in the document versions object. The &lt;code&gt;Item()&lt;/code&gt; method takes a 0-based index value and returns the result item object at that location. Note that the versions are not ordered other than by their index value; version 0 is not necessarily the earliest or latest version, version 1 may be earlier or later than version 0, etc.&lt;/p&gt;    &lt;a name=&quot;itemversionsnative&quot;&gt;&lt;/a&gt;    &lt;h2&gt;Item Versions in Native Plug-ins&lt;/h2&gt;    &lt;h3&gt;&lt;code&gt;interface IGoogleDesktopDocumentVersions: IDispatch&lt;/code&gt;&lt;/h3&gt;    &lt;ul&gt;        &lt;li&gt;&lt;code&gt;count&lt;/code&gt;: Number of separate versions in this object.        &lt;ul&gt;            &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;[out, retval] long* ret&lt;/code&gt; : Number of indexed versions of this item. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;            &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;                &lt;li&gt;Appropriate error on failure. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;code&gt;Item&lt;/code&gt;: Takes an index value and returns the result item stored at that location in the document versions list.        &lt;ul&gt;            &lt;li&gt;&lt;em&gt;Arguments&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;long index&lt;/code&gt; : Index value of the version to be returned. &lt;/li&gt;                &lt;li&gt;&lt;code&gt;[out, retval] IGoogleDesktopQueryResultItem** ret&lt;/code&gt;: The item at the position provided by the &lt;code&gt;index&lt;/code&gt; argument. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;            &lt;li&gt;&lt;em&gt;Returns&lt;/em&gt;:            &lt;ul&gt;                &lt;li&gt;&lt;code&gt;S_OK&lt;/code&gt; if successful. &lt;/li&gt;                &lt;li&gt;Appropriate error on failure. &lt;/li&gt;            &lt;/ul&gt;            &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;    &lt;/ul&gt;    &lt;a name=&quot;itemversionsscript&quot;&gt;&lt;/a&gt;    &lt;h2&gt;Item Versions in Script Plug-ins&lt;/h2&gt;    &lt;p&gt;The versions collection has one function, &lt;code&gt;Item(index)&lt;/code&gt; and one property, &lt;code&gt;count&lt;/code&gt;, which function as described above.&lt;/p&gt;    &lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;    &lt;a name=&quot;httpxml&quot;&gt;&lt;/a&gt;    &lt;h1&gt;HTTP/XML-Based Query API&lt;/h1&gt;    &lt;h2&gt;&lt;a id=&quot;gettingstarted2&quot; name=&quot;gettingstarted2&quot;&gt;&lt;/a&gt;Getting Started&lt;/h2&gt;    &lt;p&gt;From here to the end of the document, we cover how to use the HTTP/XML-based Query API. &lt;/p&gt;    &lt;p&gt;To issue Google Desktop HTTP/XML search queries you will need to know, in addition to the information in this document: &lt;/p&gt;    &lt;ul&gt;        &lt;li&gt;How to issue an HTTP request. &lt;/li&gt;        &lt;li&gt;How to process an XML-format HTTP response. &lt;/li&gt;    &lt;/ul&gt;    &lt;h2&gt;&lt;a id=&quot;requesting&quot; name=&quot;requesting&quot;&gt;&lt;/a&gt;Requesting a Desktop Search&lt;/h2&gt;    &lt;p&gt;Your application requests a desktop search by sending an HTTP request that includes a &lt;code&gt;&amp;amp;format=xml&lt;/code&gt; parameter to Google Desktop. For example, to search for &amp;quot;Google&amp;quot; you'd send something like:&lt;br /&gt;    &lt;br /&gt;    &lt;code&gt;http://127.0.0.1:4664/search&amp;amp;s=1ftR7c_hVZKYvuYS-RWnFHk91Z0? q=Google&amp;amp;format=xml&lt;/code&gt;&lt;/p&gt;    &lt;p&gt;To break this down: &lt;/p&gt;    &lt;ul&gt;        &lt;li&gt;&lt;code&gt;http://127.0.0.1:4664/&lt;/code&gt; is the localhost address and Google Desktop port. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;search&amp;amp;s=1ftR7c_hVZKYvuYS-RWnFHk91Z0&lt;/code&gt; is the search command and a security token. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;?q=Google&lt;/code&gt; is the query term(s) parameter.        &lt;ul&gt;            &lt;li&gt;If you want to search for more than one term, separate the terms with &lt;code&gt;+&lt;/code&gt;s. For example, to search for both &amp;quot;Google&amp;quot; and &amp;quot;Desktop&amp;quot;, use:&lt;br /&gt;            &lt;code&gt;?q=Google+Desktop&lt;/code&gt;&lt;br /&gt;            &lt;/li&gt;            &lt;li&gt;If you want to search for a specific phrase, separate the terms with &lt;code&gt;+&lt;/code&gt;s and surround the phrase with &lt;code&gt;%22&lt;/code&gt;s. For example, to search for the phrase &amp;quot;Google Desktop&amp;quot;, use:&lt;br /&gt;            &lt;code&gt;?q=%22Google+Desktop%22&lt;/code&gt; &lt;br /&gt;            &lt;br /&gt;            To search for the two phrases &amp;quot;Google Desktop&amp;quot; and &amp;quot;Copyright 2007&amp;quot;, use: &lt;br /&gt;            &lt;code&gt;?q=%22Google+Desktop%22+%22Copyright+2007%22&lt;/code&gt;. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;amp;format=xml&lt;/code&gt; specifies that the HTTP response returns the search results in XML format, as described in the next section. &lt;/li&gt;    &lt;/ul&gt;    &lt;p class=&quot;note&quot;&gt;&lt;strong&gt;Note:&lt;/strong&gt; These requests perform &lt;em&gt;only&lt;/em&gt; a desktop search, not both a web and desktop search. &lt;/p&gt;    &lt;p&gt;By default, an HTTP search response will only return the first ten results. You can specify a larger number by appending the &lt;code&gt;&amp;amp;num=&lt;/code&gt; parameter, followed by the maximum number of results you'd like returned, to your query. There is no problem if the maximum number argument value is greater than the total number of search results; only the total number of results is returned, with no null &amp;quot;results&amp;quot;.&lt;/p&gt;    &lt;p&gt;You can also specify at what point in the results the returned ones start. For example, if you're using the default value of 10 returned results and want to get back results 11-20 instead of the default results 1-10, append the &lt;code&gt;&amp;amp;start=&lt;/code&gt; parameter, followed by the position you want the results to start from. In this example, you'd specify &lt;code&gt;&amp;amp;start=1&lt;/code&gt;&lt;code&gt;0&lt;/code&gt; to indicate you want your returned results to start with the one after overall result 10. The &lt;code&gt;&amp;amp;start=&lt;/code&gt; and &lt;code&gt;&amp;amp;num=&lt;/code&gt; parameters can both be used in a single query.&lt;/p&gt;    &lt;p&gt;To create a query, first get the query URL that Google Desktop stores. Then append your query terms, any optional parameters, and the &lt;code&gt;&amp;amp;format=xml&lt;/code&gt; parameter. &lt;/p&gt;    &lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;    &lt;h2&gt;&lt;a name=&quot;searchurl&quot;&gt;&lt;/a&gt;Getting the Stored Query URL&lt;/h2&gt;    &lt;p&gt;The stored query URL has the first part of the URL that you need to perform any Google Desktop query. It looks something like the following: &lt;/p&gt;    &lt;p&gt;http://127.0.0.1:4664/search&amp;amp;s=1ftR7c_hVZKYvuYS-RWnFHk91Z0?q=&lt;/p&gt;    &lt;p&gt;How you get the stored query URL depends on whether your code is running on Windows or Mac OS X. &lt;/p&gt;    &lt;h3&gt;Windows&lt;/h3&gt;    &lt;p&gt;Get the query URL from the registry using the following value name: &lt;/p&gt;    &lt;p&gt;HKEY_CURRENT_USER\Software\Google\Google Desktop\API\search_url&lt;/p&gt;    &lt;h3&gt;Mac OS X&lt;/h3&gt;    &lt;p&gt;Use CFPreferences to fetch the stored query URL from the user preferences domain &lt;code&gt;com.google.Desktop.WebServer&lt;/code&gt; using the key &lt;code&gt;search_url&lt;/code&gt;. For example: &lt;/p&gt;    &lt;p&gt;CFStringRef val = CFPreferencesCopyValue( CFSTR(&amp;quot;search_url&amp;quot;), CFSTR (&amp;quot;com.google.Desktop.WebServer&amp;quot;), kCFPreferencesCurrentUser, kCFPreferencesAnyHost);if (val) { // act on the value CFRelease(val);}&lt;/p&gt;    &lt;p class=&quot;backtotop&quot;&gt;&lt;a href=&quot;#top&quot;&gt;&lt;font color=&quot;#551a8b&quot;&gt;Back to top&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;    &lt;h2&gt;&lt;a id=&quot;results&quot; name=&quot;results&quot;&gt;&lt;/a&gt;&lt;strong&gt;Desktop Search Results&lt;/strong&gt;&lt;/h2&gt;    &lt;p&gt;When a search request has the &lt;code&gt;&amp;amp;format=xml&lt;/code&gt; parameter, Google Desktop returns results in an XML format. For example:&lt;/p&gt;    &lt;p&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ? &amp;gt;&amp;lt;results count=&amp;quot;24945&amp;quot;&amp;gt;&amp;lt;result&amp;gt; &amp;lt;category&amp;gt;web&amp;lt;/category&amp;gt; &amp;lt;!-- ... optional internal, implementation-specific elements such as ids and flags... --&amp;gt; &amp;lt;title&amp;gt;Developer Knowledge Base - Read the Google Desktop blog&amp;lt;/title&amp;gt; &amp;lt;url&amp;gt;http://code.google.com/support/bin/answer.py?answer=66869&amp;amp;topic=10434&amp;lt;/url&amp;gt; &amp;lt;time&amp;gt;128243290079530000&amp;lt;/time&amp;gt; &amp;lt;snippet&amp;gt;Desktop engineers regularly post development articles and announce updates to the &amp;amp;lt;b&amp;amp;gt;SDK&amp;amp;lt;/b&amp;amp;gt; and documentation. Here are some interesting posts from the past: New&amp;lt;/snippet&amp;gt; &amp;lt;thumbnail&amp;gt;/thumbnail?id=6% 5Fvwps3QA4FIYGAAAA&amp;amp;s=wgQCmjGl0VEzw3KVhm3mxBG_x48&amp;lt;/thumbnail&amp;gt; &amp;lt;icon&amp;gt;/icon? id=http%3A%2F%2Fcode%2Egoogle%2Ecom%2F&amp;amp;s=kKR1by-QXDMlb5vEhxkDZhCv3eE&amp;lt;/icon&amp;gt; &amp;lt;cache_url&amp;gt;http://127.0.0.1:4664/...&amp;lt;/cache_url&amp;gt; &amp;lt;/result&amp;gt;...&amp;lt;/results&amp;gt;&lt;/p&gt;    &lt;p&gt;The one meta-results tag is &lt;code&gt;&amp;lt;results&amp;gt;&lt;/code&gt;, which contains the total number of items that matched the query as the value of a &lt;code&gt;count&lt;/code&gt; parameter; e.g. &lt;code&gt;&amp;lt;results count=42&amp;gt;&lt;/code&gt;. This will be the largest number of possible &lt;code&gt;&amp;lt;result&amp;gt;&lt;/code&gt;...&lt;code&gt;&amp;lt;/result&amp;gt;&lt;/code&gt; entries in the &lt;code&gt;&amp;lt;results&amp;gt;&lt;/code&gt; element. However, if the number of returned results (which defaults to at most 10 if you don't specify an &lt;code&gt;&amp;amp;num=&lt;/code&gt; parameter with a larger value) is different from the &lt;code&gt;count&lt;/code&gt; value, the number of returned &lt;code&gt;&amp;lt;result&amp;gt;&lt;/code&gt;...&lt;code&gt;&amp;lt;/result&amp;gt;&lt;/code&gt; entries will be the smaller of the two conflicting values. &lt;/p&gt;    &lt;p&gt;For example, let's say the &lt;code&gt;&amp;lt;count&amp;gt;&lt;/code&gt; value is 42. But you didn't give an &lt;code&gt;&amp;amp;num=&lt;/code&gt; argument in the query. So, despite there being 42 items that matched the query, the XML response will only contain 10 &lt;code&gt;&amp;lt;result&amp;gt;&lt;/code&gt;...&lt;code&gt;&amp;lt;/result&amp;gt;&lt;/code&gt; entries. If the &lt;code&gt;&amp;lt;count&amp;gt;&lt;/code&gt; value was 6, which is smaller than the default 10 value, the XML response will only contain 6 &lt;code&gt;&amp;lt;result&amp;gt;&lt;/code&gt;...&lt;code&gt;&amp;lt;/result&amp;gt;&lt;/code&gt; entries.&lt;/p&gt;    &lt;p&gt;If you want to be sure to obtain all search results, your component will have to parse out the &lt;code&gt;&amp;lt;count&amp;gt;&lt;/code&gt; value and then issue additional HTTP Google Desktop search requests to retrieve that many results via use of either the &lt;code&gt;&amp;amp;start=&lt;/code&gt; or &lt;code&gt;&amp;amp;num=&lt;/code&gt; parameters.&lt;/p&gt;    &lt;p&gt;Each &lt;code&gt;&amp;lt;result&amp;gt;&lt;/code&gt; may include the following fields, which may appear in any order. Which fields appear will depend on the result type; for example, the &lt;code&gt;&amp;lt;from&amp;gt;&lt;/code&gt; entry should only show up in email or chat results. Each tag will contain a value; any tags not containing a value are not shown. &lt;/p&gt;    &lt;ul&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;cache_url&amp;gt;&lt;/code&gt; is the Google Desktop-relative URL of this result's internal cache page. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;category&amp;gt;&lt;/code&gt; contains the result's type. The following table shows the possible result types for each platform.        &lt;table&gt;            &lt;tbody&gt;                &lt;tr&gt;                    &lt;th&gt;Result Type&lt;/th&gt;                    &lt;th&gt;                    &lt;div align=&quot;center&quot;&gt;Windows&lt;/div&gt;                    &lt;/th&gt;                    &lt;th&gt;                    &lt;div align=&quot;center&quot;&gt;Mac OS X&lt;/div&gt;                    &lt;/th&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;application&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;bookmark&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;calendar&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;chat&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;contact&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;email&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;file&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;journal&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;media_file&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;note&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;task&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;                &lt;tr&gt;                    &lt;td&gt;web&lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                    &lt;td&gt;                    &lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px&quot; alt=&quot;YES&quot; src=&quot;http://desktop.google.com/dev/images/checkbox.png&quot; /&gt;&lt;/div&gt;                    &lt;/td&gt;                &lt;/tr&gt;            &lt;/tbody&gt;        &lt;/table&gt;        &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;folder&amp;gt;&lt;/code&gt; is the name of the folder containing an email message. This field is not used on Mac OS X. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;from&amp;gt;&lt;/code&gt; is the name of either the person an email message was from, or the other party in an Instant Message chat. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;icon&amp;gt;&lt;/code&gt; is a Google Desktop-relative URL to an icon representing this result or its type. This will either be one of the standard Google Desktop Search result type icons (envelope for email, Word icon for a Word file, etc.) or a favicon obtained from a website. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;snippet&amp;gt;&lt;/code&gt; is a snippet from the result's content that contains at least one of the search terms. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;thumbnail&amp;gt;&lt;/code&gt; is a relative URL to the icon for this result at the Google Desktop webserver &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;time&amp;gt;&lt;/code&gt; is the time value from the event that put this content into Google Desktop. Usually this will be the time the content was indexed by Google Desktop, but, for example, it could also be a file's last modified time. The format is per the Windows FILETIME structure; the number of 100-nanosecond intervals since January 1, 1601 represented as a 64-bit number. &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt;&amp;nbsp; is the result's title, which varies depending on its type, for example:        &lt;ul&gt;            &lt;li&gt;Web page: the page's title. &lt;/li&gt;            &lt;li&gt;Email: the message's Subject:. &lt;/li&gt;            &lt;li&gt;File: its filename. &lt;/li&gt;            &lt;li&gt;Chat: a line from the chat. &lt;/li&gt;        &lt;/ul&gt;        &lt;/li&gt;        &lt;li&gt;&lt;code&gt;&amp;lt;url&amp;gt;&lt;/code&gt; is the result's URL. For files and web pages, this is the usual path to the result. For chats and email messages, Google Desktop generates a URL for the location where it has stored its cached copy. &lt;/li&gt;    &lt;/ul&gt;    &lt;p&gt;If you want to experiment with queries to see what their XML format results look like, just do a desktop search from the browser. Then append &lt;code&gt;?format=xml&lt;/code&gt; to the result's URL, hit Enter, and the same results will display in XML format in the browser. Two caveats: first, only the number of results that originally appeared on one results page will show up in the browser in XML. So, for example, if only 10 HTML format results show up in the browser on one results page, only 10 XML format results will appear in the browser, even if the value of the &lt;code&gt;&amp;lt;results&amp;gt;&lt;/code&gt; tag's &lt;code&gt;count&lt;/code&gt; parameter is, say, 42. Second, your browser must include an XML viewer, which IE and Firefox do by default.&lt;/p&gt;    &lt;p&gt;Finally, note that the XML results do &lt;em&gt;not&lt;/em&gt; include the search terms. If your application wants to also make use of the search terms, as well as the results, it will have to keep track of what they were.&lt;/p&gt;</description><category>『GOOGLE开发』</category><pubDate>Sun, 05 Aug 2007 10:55:45 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/GoogleDevelopment/200708/71.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-08-05T02:55:45Z</dc:date><fs:srclink>http://blog.mobilelook.cn/GoogleDevelopment/200708/71.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/15091840/1503640</fs:itemid></item><item><title>.Net反编译工具Reflector</title><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/12486178/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=70</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=70&amp;key=ab998dc0</trackback:ping><description>&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Net非常不错的反编译工具Reflector，用它打开.exe.mcl.dll文件可以查看到这些文件的源代码（要.NET开发的哦）&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://blog.mobilelook.cn/upload/200707051316534523.JPG&quot; rel=&quot;gb_imageset[nice_pics]&quot; title=&quot;&quot;&gt;&lt;img onload=&quot;ResizeImage(this,520)&quot; src=&quot;http://blog.mobilelook.cn/upload/200707051316534523.JPG&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://blog.mobilelook.cn/upload/200707051319033314.JPG&quot; rel=&quot;gb_imageset[nice_pics]&quot; title=&quot;&quot;&gt;&lt;img onload=&quot;ResizeImage(this,520)&quot; src=&quot;http://blog.mobilelook.cn/upload/200707051319033314.JPG&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;下载地址：&lt;a class=&quot;l&quot; href=&quot;/upload/Reflector.rar&quot;&gt;Reflector&lt;/a&gt;&lt;/p&gt;</description><category>『.Net』</category><pubDate>Thu, 05 Jul 2007 13:21:56 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/DotNet/200707/70.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-07-05T05:21:56Z</dc:date><fs:srclink>http://blog.mobilelook.cn/DotNet/200707/70.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/12486178/1503640</fs:itemid></item><item><title>.NET模板引擎 (代码生成器 静态页生成 生成HTML 模板)</title><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/12486179/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=69</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=69&amp;key=50e76fbe</trackback:ping><description>&lt;p style=&quot;FONT-SIZE: 8pt; FONT-FAMILY: Verdana&quot;&gt;CodeGenerator 的特点:&lt;br /&gt;1. 标记简结实用, 所有网页美工都能在一分钟内掌握. 而且不与HTML标准冲突, 模板页可用任何WYSIWYG工具编辑, 和编辑普通HTML网完全相同.&lt;br /&gt;2. 标记只与表示层相关, 不包括任何业务逻辑, 丝毫不影响你应用多层结构.&lt;br /&gt;3. 标记到后台被解析成了生成器对象, 完全面向对象, 不像绝大多数生成器要死嗑字符串.&lt;br /&gt;4. 生成器对象使用DataSource属性取得数据, DataSource可以为&amp;nbsp; 简单值类型(如 int, DateTIme), 也可以为简单数组(如 decimal[], string[]), 还可以为ADO.NET数据集(如DataTable), 甚至单个对象实体或对象集合或列表(如 SomeClassCollection, List&amp;lt;SomeClass&amp;gt;), 所有数据源类型通吃! 哈哈, 比ASP.NET带的数据控件支持的类型还多.&lt;br /&gt;5. 标记的Name直接与数据源的列名ColumnName或属性名PropertyName, 好处不言而喻了吧.&lt;br /&gt;6. 说到这里好了, 留一手先. 呵呵&lt;/p&gt;&lt;p style=&quot;FONT-SIZE: 8pt; FONT-FAMILY: Verdana&quot;&gt;&lt;br /&gt;演示地址: &lt;a href=&quot;http://efplatform.net/demo/codegenerator/default.aspx&quot;&gt;&lt;font color=&quot;#000080&quot; size=&quot;2&quot;&gt;http://efplatform.net/demo/codegenerator/default.aspx&lt;/font&gt;&lt;/a&gt; &lt;br /&gt;EFPlatform.CodeGenerator.dll 下载地址: &lt;a href=&quot;http://blog.mobilelook.cn/upload/200707042135476872.rar&quot; target=&quot;_blank&quot;&gt;200707042135476872.rar&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;FONT-SIZE: 8pt; FONT-FAMILY: Verdana&quot;&gt;应用流程:&lt;br /&gt;&lt;img height=&quot;405&quot; alt=&quot;&quot; src=&quot;http://www.cnblogs.com/images/cnblogs_com/ericfine/98257/o_CodeGenerator.gif&quot; width=&quot;521&quot; border=&quot;1&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Default.aspx.cs:&lt;/p&gt;&lt;div style=&quot;BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 12px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: simsun; BACKGROUND-COLOR: #fbedbb&quot;&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;System;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;System.Collections.Generic;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;System.Configuration;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;System.Data;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;System.Data.Common;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;System.IO;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;System.Text;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;System.Web;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;System.Web.UI;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;System.Web.UI.WebControls;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;EFPlatform.CodeGenerator;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;partial&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;_Default&amp;nbsp;:&amp;nbsp;Page&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;outputPath;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;categoryFileName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;productFileName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;DbProviderFactory&amp;nbsp;dbFactory;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;DbConnection&amp;nbsp;connection;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;protected&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Page_Load(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;outputPath&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Server.MapPath(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;./&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;categoryFileName&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.Format(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;@&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;{0}\Template\Category.html&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;,&amp;nbsp;outputPath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;productFileName&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.Format(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;@&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;{0}\Template\Product.html&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;,&amp;nbsp;outputPath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;currentConnection&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;ConfigurationManager.AppSettings[&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Connection&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ConnectionStringSettings&amp;nbsp;css&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;ConfigurationManager.ConnectionStrings[currentConnection];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.GetConnection(css);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GenerateCategory()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;template&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Helper.ReadTextFile(categoryFileName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Generator&amp;nbsp;gen&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Generator(template);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gen.ParseTemplate();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Region&amp;nbsp;rgnTitle&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;gen.Regions[&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Title&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Region&amp;nbsp;rgnCategory&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;gen.Regions[&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Category&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Region&amp;nbsp;rgnProducts&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;gen.Regions[&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Products&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Region&amp;nbsp;rgnNavigator&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;gen.Regions[&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Navigator&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(rgnTitle&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;rgnCategory&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;rgnProducts&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;rgnNavigator&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Write(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Missing&amp;nbsp;region.&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;categoryId;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;outputFileName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DataView&amp;nbsp;dvCategory&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.GetCategoryTable().DefaultView;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Pager&amp;nbsp;pgrCategory&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Pager(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;,&amp;nbsp;dvCategory.Count);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;pgrCategory.PageCount;&amp;nbsp;i&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rgnTitle.DataSource&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)dvCategory[i][&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;CategoryName&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;Use&amp;nbsp;a&amp;nbsp;string&amp;nbsp;as&amp;nbsp;data&amp;nbsp;source&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rgnCategory.DataSource&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;dvCategory[i];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;Use&amp;nbsp;a&amp;nbsp;DataRowView&amp;nbsp;object&amp;nbsp;as&amp;nbsp;data&amp;nbsp;source&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pgrCategory.CurrentPage&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rgnNavigator.DataSource&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;pgrCategory;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;Use&amp;nbsp;a&amp;nbsp;Pager&amp;nbsp;object&amp;nbsp;as&amp;nbsp;data&amp;nbsp;source&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;categoryId&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)dvCategory[i][&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;CategoryID&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rgnProducts.DataSource&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.GetProductTable(categoryId);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;Use&amp;nbsp;a&amp;nbsp;DataTable&amp;nbsp;object&amp;nbsp;as&amp;nbsp;data&amp;nbsp;souce&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;outputFileName&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.Format(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;@&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;{0}\Html\Category{1}.html&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;,&amp;nbsp;outputPath,&amp;nbsp;categoryId);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Helper.WriteTextFile(outputFileName,&amp;nbsp;gen.Generate());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GenerateProduct()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;template&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Helper.ReadTextFile(productFileName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Generator&amp;nbsp;gen&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Generator(template);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gen.ParseTemplate();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Region&amp;nbsp;rgnTitle&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;gen.Regions[&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Title&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Region&amp;nbsp;rgnProduct&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;gen.Regions[&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Product&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Region&amp;nbsp;rgnNavigator&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;gen.Regions[&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Navigator&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(rgnTitle&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;rgnProduct&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;rgnNavigator&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Write(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Missing&amp;nbsp;region.&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;outputFileName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Product&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;productList&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.GetProductList();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Pager&amp;nbsp;pgrProduct&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Pager(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;,&amp;nbsp;productList.Count);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;pgrProduct.PageCount;&amp;nbsp;i&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rgnTitle.DataSource&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;productList[i].CategoryName;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;Use&amp;nbsp;a&amp;nbsp;string&amp;nbsp;as&amp;nbsp;data&amp;nbsp;source&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rgnProduct.DataSource&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;productList[i];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;Use&amp;nbsp;a&amp;nbsp;Product&amp;nbsp;object&amp;nbsp;as&amp;nbsp;data&amp;nbsp;source&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pgrProduct.CurrentPage&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rgnNavigator.DataSource&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;pgrProduct;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;Use&amp;nbsp;a&amp;nbsp;Pager&amp;nbsp;object&amp;nbsp;as&amp;nbsp;data&amp;nbsp;source&lt;/span&gt;&lt;span style=&quot;COLOR: #008000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;outputFileName&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.Format(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;@&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;{0}\Html\Product{1}.html&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;,&amp;nbsp;outputPath,&amp;nbsp;productList[i].ProductID);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Helper.WriteTextFile(outputFileName,&amp;nbsp;gen.Generate());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;#region&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;DataSourcePreparing&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GetConnection(ConnectionStringSettings&amp;nbsp;css)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(dbFactory&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dbFactory&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;DbProviderFactories.GetFactory(css.ProviderName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.connection&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;dbFactory.CreateConnection();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.connection.ConnectionString&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;css.ConnectionString;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;DataTable&amp;nbsp;GetCategoryTable()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;commandText&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;SELECT&amp;nbsp;CategoryID,&amp;nbsp;CategoryName,&amp;nbsp;Description&amp;nbsp;FROM&amp;nbsp;Categories&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DbDataAdapter&amp;nbsp;da&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;dbFactory.CreateDataAdapter();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;da.SelectCommand&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;dbFactory.CreateCommand();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;da.SelectCommand.Connection&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.connection;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;da.SelectCommand.CommandText&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;commandText;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DataTable&amp;nbsp;dt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;DataTable();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.connection.Open();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;da.Fill(dt);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.connection.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;dt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;DataTable&amp;nbsp;GetProductTable(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;categoryId)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;commandText&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.Format(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;SELECT&amp;nbsp;*&amp;nbsp;FROM&amp;nbsp;Products&amp;nbsp;WHERE&amp;nbsp;CategoryID&amp;nbsp;=&amp;nbsp;{0}&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;,&amp;nbsp;categoryId);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DbDataAdapter&amp;nbsp;da&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;dbFactory.CreateDataAdapter();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;da.SelectCommand&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;dbFactory.CreateCommand();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;da.SelectCommand.Connection&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.connection;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;da.SelectCommand.CommandText&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;commandText;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DataTable&amp;nbsp;dt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;DataTable();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.connection.Open();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;da.Fill(dt);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.connection.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;dt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Product&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GetProductList()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;commandText&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;SELECT&amp;nbsp;p.*,&amp;nbsp;c.CategoryName,&amp;nbsp;s.CompanyName&amp;nbsp;FROM&amp;nbsp;(Products&amp;nbsp;AS&amp;nbsp;p&amp;nbsp;INNER&amp;nbsp;JOIN&amp;nbsp;Categories&amp;nbsp;AS&amp;nbsp;c&amp;nbsp;ON&amp;nbsp;p.CategoryID&amp;nbsp;=&amp;nbsp;c.CategoryID)&amp;nbsp;INNER&amp;nbsp;JOIN&amp;nbsp;Suppliers&amp;nbsp;AS&amp;nbsp;s&amp;nbsp;ON&amp;nbsp;p.SupplierID&amp;nbsp;=&amp;nbsp;s.SupplierID&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;p.ProductID&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DbCommand&amp;nbsp;command&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.connection.CreateCommand();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;command.CommandText&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;commandText;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Product&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;productList&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Product&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Product&amp;nbsp;product;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.connection.Open();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(DbDataReader&amp;nbsp;dr&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;command.ExecuteReader())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(dr.Read())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;product&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Product();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Helper.FillModel(product,&amp;nbsp;dr);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;productList.Add(product);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.connection.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;productList;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Product&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;productID;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;ProductID&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;productID;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;productID&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;value;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;productName;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;ProductName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;productName;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;productName&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;value;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;companyName;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;CompanyName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;companyName;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;companyName&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;value;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;categoryID;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;CategoryID&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;categoryID;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;categoryID&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;value;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;categoryName;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;CategoryName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;categoryName;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;categoryName&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;value;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;quantityPerUnit;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;QuantityPerUnit&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;quantityPerUnit;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;quantityPerUnit&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;value;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;decimal&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;unitPrice;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;decimal&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;UnitPrice&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;unitPrice;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;unitPrice&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;value;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;unitsInStock;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;UnitsInStock&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;unitsInStock;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;unitsInStock&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;value;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;unitsOnOrder;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;UnitsOnOrder&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;unitsOnOrder;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;unitsOnOrder&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;value;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;reorderLevel;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;ReorderLevel&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;reorderLevel;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;{&amp;nbsp;reorderLevel&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;value;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;#endregion&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;protected&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Button1_Click(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.GenerateCategory();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;protected&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Button2_Click(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.GenerateProduct();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p style=&quot;FONT-SIZE: 8pt; FONT-FAMILY: Verdana&quot;&gt;Web.config:&lt;/p&gt;&lt;div style=&quot;BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 12px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: simsun; BACKGROUND-COLOR: #fbedbb&quot;&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;xml&amp;nbsp;version=&amp;quot;1.0&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;configuration&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;system&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;.web&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;compilation&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;debug&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;authentication&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;mode&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;Windows&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;customErrors&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;mode&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;Off&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;defaultRedirect&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;GenericErrorPage.htm&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;error&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;statusCode&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;403&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;redirect&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;NoAccess.htm&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;error&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;statusCode&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;404&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;redirect&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;FileNotFound.htm&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;customErrors&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;system.web&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;connectionStrings&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;add&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;Access&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;providerName&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;System.Data.OleDb&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;connectionString&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;Provider=Microsoft.Jet.OLEDB.4.0;Data&amp;nbsp;Source=|DataDirectory|Northwind.mdb&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;add&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;SqlExpress&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;providerName&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;System.Data.SqlClient&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;connectionString&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;Data&amp;nbsp;Source=.\SQLExpress;Integrated&amp;nbsp;Security=True;User&amp;nbsp;Instance=True;Database=Northwind;AttachDBFilename=|DataDirectory|Northwind.mdf&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;connectionStrings&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;appSettings&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;add&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;Connection&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;value&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;Access&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;appSettings&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;configuration&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;转载：&lt;a class=&quot;HeaderMainTitle&quot; id=&quot;Header1_HeaderTitle&quot; href=&quot;http://www.cnblogs.com/ericfine/&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Eric's Bloggy&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;</description><category>『.Net』</category><pubDate>Wed, 04 Jul 2007 21:30:48 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/DotNet/200707/69.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-07-04T13:30:48Z</dc:date><fs:srclink>http://blog.mobilelook.cn/DotNet/200707/69.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/12486179/1503640</fs:itemid></item><item><title>Eric 的随机文件名 生成方法</title><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/12486180/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=68</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=68&amp;key=03252b9b</trackback:ping><description>&lt;span style=&quot;FONT-SIZE: 8pt; FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 利用当前时间与2000-1-1 0:0:0 相差的毫秒数转成36进制字符串 加上4位随机字符串 生成一个随机文件名. 算是长度比较短而唯一性比较高的随机文件名生成方法了.&lt;br /&gt;&lt;br /&gt;实测1,000,000 * 100次, 平均每生成1,000,000个随机文件名耗时0.3秒. (测试平台:Dell 640M, T2300, XPSP2)&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 12px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: simsun; BACKGROUND-COLOR: #fbedbb&quot;&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;charDictionary&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;0123456789abcdefghijklmnopqrstuvwxyz&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;#region&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GetRandomString&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GetRandomString(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;length)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GetRandomString(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Random(),&amp;nbsp;length);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GetRandomString(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;dictionary,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;length)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GetRandomString(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Random(),&amp;nbsp;dictionary,&amp;nbsp;length);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GetRandomString(Random&amp;nbsp;r,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;length)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GetRandomString(r,&amp;nbsp;charDictionary,&amp;nbsp;length);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GetRandomString(Random&amp;nbsp;r,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;dictionary,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;length)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(r&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Random();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StringBuilder&amp;nbsp;sb&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;StringBuilder();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;[]&amp;nbsp;chars&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;dictionary.ToCharArray();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;length;&amp;nbsp;i&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sb.Append(chars[r.Next(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;,&amp;nbsp;chars.Length)]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;sb.ToString();&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;#endregion&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;#region&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GetRandomFileName&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GetRandomFileName()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GetRandomFileName(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Random());&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GetRandomFileName(Random&amp;nbsp;r)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;timeSpan&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)(DateTime.Now&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;DateTime(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;2000&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)).TotalMilliseconds;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;fileName&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;ConvertToRadix(timeSpan,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;36&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fileName&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;GetRandomString(r,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;fileName.ToLower();&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;#endregion&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;#region&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;ConvertToRadix&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;ConvertToRadix(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;number,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;byte&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;scale)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(scale&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;scale&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;36&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;throw&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Exception(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Scale&amp;nbsp;number&amp;nbsp;must&amp;nbsp;not&amp;nbsp;be&amp;nbsp;less&amp;nbsp;than&amp;nbsp;2&amp;nbsp;and&amp;nbsp;bigger&amp;nbsp;then&amp;nbsp;36.&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;[]&amp;nbsp;dictionary&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;charDictionary.ToCharArray();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;charList&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;positive&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Math.Abs(number);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;64&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&amp;nbsp;i&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(positive&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;break&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;charList.Add(dictionary[positive&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;scale]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;positive&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;/=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;scale;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;charList.Reverse();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(charList.ToArray());&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;#endregion&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;</description><category>『.Net』</category><pubDate>Wed, 04 Jul 2007 21:27:18 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/DotNet/200707/68.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-07-04T13:27:18Z</dc:date><fs:srclink>http://blog.mobilelook.cn/DotNet/200707/68.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/12486180/1503640</fs:itemid></item><item><title>Eric的行政区(省市)下列表控件和标签控件（.net）</title><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/12486181/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=67</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=67&amp;key=d926cadf</trackback:ping><description>&lt;p&gt;&lt;span style=&quot;FONT-SIZE: 8pt; FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 省市地区选择在各类项目中都可能要用到, 想要联动又刷新, 想只存地区代码又想显示方便, 还想要开发和部署简便...于是我的 DistrictDropDownList和 DistictLabel 应着全国人民的心声面试了 ^o^;; 这两个控件是本人2005年在公司开发一个网游交易网站时顺便做的. 在2006年试用Atlas时发现WebResource的好&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;FONT-SIZE: 8pt; FONT-FAMILY: Verdana&quot;&gt;处后对控件做了改良.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;FONT-SIZE: 8pt; FONT-FAMILY: Verdana&quot;&gt;DistrictDropDownList 的特点: 客户端使用JS+XML实现省市联动, 在IE6/5, FF2上测试通过.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;FONT-SIZE: 8pt; FONT-FAMILY: Verdana&quot;&gt;DistrictDropDownList 和 DistictLabel 共同特点: &lt;br /&gt;1. 主要属性是Code, Code是个Int32的值, 用于存储全国行政区划编号. 这样用1个变量(字段)就能存储省市(县)区3级别的信息.(区级用得少,所以这个版本没包含)&lt;br /&gt;2. 行政区数据信息以XML格式嵌入在控件DLL中, 数据整理自中国国家统计局行政区划代码2006年12月31日版.&lt;br /&gt;2. 在VS里即拖即用,呵呵&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;FONT-SIZE: 8pt; FONT-FAMILY: Verdana&quot;&gt;&lt;font face=&quot;Arial&quot; size=&quot;2&quot;&gt;&lt;a href=&quot;http://blog.mobilelook.cn/upload/200707042122385727.JPG&quot; rel=&quot;gb_imageset[nice_pics]&quot; title=&quot;&quot;&gt;&lt;img onload=&quot;ResizeImage(this,520)&quot; src=&quot;http://blog.mobilelook.cn/upload/200707042122385727.JPG&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/a&gt;&lt;/font&gt;&lt;br /&gt;演示地址: &lt;a href=&quot;http://efplatform.net/demo/webcontrols/districtcontrols.aspx&quot;&gt;&lt;font color=&quot;#000080&quot;&gt;http://efplatform.net/demo/webcontrols/districtcontrols.aspx&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;控件下载地址: &lt;a href=&quot;http://blog.mobilelook.cn/upload/200707042123495204.rar&quot; target=&quot;_blank&quot;&gt;200707042123495204.rar&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;DistrictControls.aspx:&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 12px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: simsun; BACKGROUND-COLOR: #fbedbb&quot;&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #ffff00&quot;&gt;&amp;lt;%&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;@&amp;nbsp;Page&amp;nbsp;Language&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;C#&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #ffff00&quot;&gt;%&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #ffff00&quot;&gt;&amp;lt;%&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;@&amp;nbsp;Register&amp;nbsp;Assembly&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;EFPlatform.WebControls&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;nbsp;Namespace&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;EFPlatform.WebControls&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;nbsp;TagPrefix&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;efp&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #ffff00&quot;&gt;%&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;!&lt;/span&gt;&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;DOCTYPE&amp;nbsp;html&amp;nbsp;PUBLIC&amp;nbsp;&amp;quot;-//W3C//DTD&amp;nbsp;XHTML&amp;nbsp;1.0&amp;nbsp;Transitional//EN&amp;quot;&amp;nbsp;&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;script&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;protected&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;nbsp;Page_Load(object&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;.DistrictDropDownList2.Code&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;430100&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;.DistrictDropDownList3.Code&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;450500&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;.DistrictDropDownList4.Code&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;210000&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;protected&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;nbsp;Button1_Click(object&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;.DistrictLabel1.Code&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;.DistrictDropDownList1.Code;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;.DistrictLabel2.Code&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;.DistrictDropDownList2.Code;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;.DistrictLabel3.Code&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;.DistrictDropDownList3.Code;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;.DistrictLabel4.Code&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;COLOR: #000000; BACKGROUND-COLOR: #f5f5f5&quot;&gt;.DistrictDropDownList4.Code;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;html&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;xmlns&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;head&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;DistrictDropDownList&amp;nbsp;&amp;amp;&amp;nbsp;DistrictLabel&amp;nbsp;Demo&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;head&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;form&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;form1&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;efp:DistrictDropDownList&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;DistrictDropDownList1&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;br&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;efp:DistrictDropDownList&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;DistrictDropDownList2&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;br&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;efp:DistrictDropDownList&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;DistrictDropDownList3&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;br&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;efp:DistrictDropDownList&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;DistrictDropDownList4&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;asp:Button&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;Button1&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;OnClick&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;Button1_Click&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;Button&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;br&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;br&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;efp:DistrictLabel&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;DistrictLabel1&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;efp:DistrictLabel&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;br&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;efp:DistrictLabel&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;DistrictLabel2&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;efp:DistrictLabel&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;br&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;efp:DistrictLabel&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;DistrictLabel3&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;efp:DistrictLabel&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;br&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;efp:DistrictLabel&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;DistrictLabel4&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;efp:DistrictLabel&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;form&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #800000&quot;&gt;html&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;转载：&lt;a class=&quot;HeaderMainTitle&quot; id=&quot;Header1_HeaderTitle&quot; href=&quot;http://www.cnblogs.com/ericfine/&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Eric's Bloggy&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;</description><category>『.Net』</category><pubDate>Wed, 04 Jul 2007 21:14:31 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/DotNet/200707/67.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-07-04T13:14:31Z</dc:date><fs:srclink>http://blog.mobilelook.cn/DotNet/200707/67.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/12486181/1503640</fs:itemid></item><item><title>下载网页中远程图片到本地服务器方法(.net)</title><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/12486182/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=66</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=66&amp;key=67947eab</trackback:ping><description>&lt;div class=&quot;postText&quot;&gt;&lt;p style=&quot;FONT-SIZE: 8pt; FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在网站内容编辑时, 经常会把别的网站的内容COPY后再PASTE到自己的后台编辑中, 但是其中的图片只是保存的URL, 并未COPY到本地. 下面这个方法能把COPY回来的HTML代码中的图片的URL转换成指定的URL, 并把图片下载到指定的物理路径.&lt;/p&gt;&lt;div style=&quot;BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 12px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: simsun; BACKGROUND-COLOR: #fbedbb&quot;&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;System;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;System.Collections.Generic;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;System.Text.RegularExpressions;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;System.Net;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;System.IO;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;namespace&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;EFPlatform.Helper&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;WebRequestHelper&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;#region&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;RequestFileFromHtml&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;RequestFileFromHtml(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;html,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;fileUrl,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;filePath,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;reservedHost)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Uri&amp;nbsp;url;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;fileExt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;fileName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WebClient&amp;nbsp;c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;WebClient();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;@&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;((http|https|ftp):(\/\/|\\\\){1}(([A-Za-z0-9_-])+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(\S*\/)((\S)+[.]{1}(gif|jpg|png)))&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Regex&amp;nbsp;r&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Regex(p,&amp;nbsp;RegexOptions.Compiled&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;RegexOptions.IgnoreCase);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MatchCollection&amp;nbsp;mc&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;r.Matches(html);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(mc.Count&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Uri&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;urlList&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;Uri&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;matchIndex&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;bool&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;repeated&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;mc.Count;i&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;Uri(mc[i].Value);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;j&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;j&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;urlList.Count;j&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(url&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;urlList[j])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;repeated&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;break&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;repeated&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;(url.Host.ToLower()&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;reservedHost.ToLower()))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;urlList.Add(url);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;matchIndex&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;urlList.Count;i&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;urlList[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fileExt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;url.AbsoluteUri.Substring(url.AbsoluteUri.LastIndexOf(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fileName&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;.Format(&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;{0:yyMMddHHmmssff}{1}{2}&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;,&amp;nbsp;DateTime.Now,&amp;nbsp;i,&amp;nbsp;fileExt);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;try&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c.DownloadFile(url,&amp;nbsp;filePath&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;fileName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;html&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;html.Replace(url.AbsoluteUri,&amp;nbsp;fileUrl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;fileName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&amp;nbsp;html;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;#endregion&lt;/span&gt;&lt;span style=&quot;COLOR: #000000&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;转载：&lt;a class=&quot;HeaderMainTitle&quot; id=&quot;Header1_HeaderTitle&quot; href=&quot;http://www.cnblogs.com/ericfine/&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Eric's Bloggy&lt;/font&gt;&lt;/a&gt;&lt;p id=&quot;tagline&quot;&gt;&amp;nbsp;&lt;/p&gt;</description><category>『.Net』</category><pubDate>Wed, 04 Jul 2007 21:11:41 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/DotNet/200707/66.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-07-04T13:11:41Z</dc:date><fs:srclink>http://blog.mobilelook.cn/DotNet/200707/66.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/12486182/1503640</fs:itemid></item><item><title>支持GOOGLE，我开通的GOOGLE服务</title><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/12486183/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=65</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=65&amp;key=709fa4fa</trackback:ping><description>&lt;table class=&quot;svcs&quot;&gt;    &lt;tbody&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;https://www.google.com/adsense&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;AdSense&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/web20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://www.google.com/adsense&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;AdSense&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color=&quot;#000000&quot; size=&quot;-1&quot;&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://www.blogger.com/&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;Blogger&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/blogger20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.blogger.com/&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Blogger&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color=&quot;#000000&quot; size=&quot;-1&quot;&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://docs.google.com/&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;Docs and Spreadsheets&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/writely20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://docs.google.com/&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Docs and Spreadsheets&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color=&quot;#000000&quot; size=&quot;-1&quot;&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://mail.google.com/mail&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;Gmail&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/gmail20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://mail.google.com/mail&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Gmail&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://www.google.com/ig?source=gama&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;iGoogle&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/ig20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.google.com/ig?source=gama&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;iGoogle&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://pages.google.com/&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;Page Creator&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/default20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://pages.google.com/&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Page Creator&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://picasaweb.google.com/&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;Picasa 网络相册&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/default20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://picasaweb.google.com/&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Picasa 网络相册&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color=&quot;#000000&quot; size=&quot;-1&quot;&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://www.google.com/reader/&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;Reader&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/reader20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.google.com/reader/&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Reader&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://www.google.com/talk/service/GoogleTalk?hl=zh-CN&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;Talk&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/talk20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.google.com/talk/service/GoogleTalk?hl=zh-CN&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;Talk&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color=&quot;#000000&quot; size=&quot;-1&quot;&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://www.google.com/local/add&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;本地商户中心&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/local20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.google.com/local/add&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;本地商户中心&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color=&quot;#000000&quot; size=&quot;-1&quot;&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://www.google.com/notebook/?hl=zh-CN&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;笔记本&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/notebook20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.google.com/notebook/?hl=zh-CN&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;笔记本&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color=&quot;#000000&quot; size=&quot;-1&quot;&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://www.google.com/newsalerts&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;快讯&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/alerts20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.google.com/newsalerts&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;快讯&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://tools.google.com/pinyin/&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;拼音输入法编辑器&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/default20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://tools.google.com/pinyin/&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;拼音输入法编辑器&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color=&quot;#000000&quot; size=&quot;-1&quot;&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://www.google.com/transconsole&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;让 Google在 说您的语言&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/translate20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.google.com/transconsole&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;让 Google在 说您的语言&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&lt;/strong&gt;&lt;/font&gt;&lt;font color=&quot;#000000&quot; size=&quot;-1&quot;&gt; &lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://www.google.com/calendar&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;日历&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/calendar20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.google.com/calendar&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;日历&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color=&quot;#000000&quot; size=&quot;-1&quot;&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://video.google.com/&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;视频&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/video20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://video.google.com/&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;视频&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://groups.google.com/&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;网上论坛&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/groups20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://groups.google.com/&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;网上论坛&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;        &lt;tr&gt;            &lt;td valign=&quot;top&quot; width=&quot;32&quot;&gt;&lt;a href=&quot;http://www.google.com/webmasters/tools&quot;&gt;&lt;img height=&quot;20&quot; alt=&quot;网站管理员工具&quot; width=&quot;20&quot; vspace=&quot;1&quot; border=&quot;0&quot; src=&quot;https://www.google.com/accounts/sitemaps20x20.gif&quot; /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;&lt;strong&gt;&lt;a href=&quot;http://www.google.com/webmasters/tools&quot;&gt;&lt;font color=&quot;#0000cc&quot;&gt;网站管理员工具&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;        &lt;/tr&gt;    &lt;/tbody&gt;&lt;/table&gt;</description><category>『GOOGLE开发』</category><pubDate>Wed, 04 Jul 2007 20:22:47 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/GoogleDevelopment/200707/65.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-07-04T12:22:47Z</dc:date><fs:srclink>http://blog.mobilelook.cn/GoogleDevelopment/200707/65.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/12486183/1503640</fs:itemid></item><item><title>Asp.net可以调用RAR实现在线文件压缩与解压缩</title><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/12486184/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=64</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=64&amp;key=2ec9c5dc</trackback:ping><description>如果服务器上安装了RAR程序，那么asp.net可以调用RAR实现文件压缩与解压缩。 &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;不过要注意的是，由于Web程序不能直接调用客户端的程序（除非用ActiveX，ActiveX几乎被废弃），所以如果要想实现让用户把本地文件用网页解压缩只有把文件上传到服务器上再调用服务器上的RAR压缩，同理要解压缩本地的RAR文件可以把文件上传到服务器解压再拿回来。 &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;本文讲怎么在服务器端的目录解压缩文件！ &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;效果图 &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;img src=&quot;http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/2007061301.gif&quot; alt=&quot;&quot; /&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp; 查看文章 &lt;br /&gt;&amp;nbsp;&amp;nbsp;asp.net利用RAR实现文件压缩解压缩[转载]2007-06-21 10:39如果服务器上安装了RAR程序，那么asp.net可以调用RAR实现文件压缩与解压缩。 &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;不过要注意的是，由于Web程序不能直接调用客户端的程序（除非用ActiveX，ActiveX几乎被废弃），所以如果要想实现让用户把本地文件用网页解压缩只有把文件上传到服务器上再调用服务器上的RAR压缩，同理要解压缩本地的RAR文件可以把文件上传到服务器解压再拿回来。 &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;本文讲怎么在服务器端的目录解压缩文件！ &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;效果图： &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;前台代码： &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;.... &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;后台代码： &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;using System; &lt;br /&gt;&amp;nbsp;&amp;nbsp;using System.Data; &lt;br /&gt;&amp;nbsp;&amp;nbsp;using System.Configuration; &lt;br /&gt;&amp;nbsp;&amp;nbsp;using System.Web; &lt;br /&gt;&amp;nbsp;&amp;nbsp;using System.Web.Security; &lt;br /&gt;&amp;nbsp;&amp;nbsp;using System.Web.UI; &lt;br /&gt;&amp;nbsp;&amp;nbsp;using System.Web.UI.WebControls; &lt;br /&gt;&amp;nbsp;&amp;nbsp;using System.Web.UI.WebControls.WebParts; &lt;br /&gt;&amp;nbsp;&amp;nbsp;using System.Web.UI.HtmlControls; &lt;br /&gt;&amp;nbsp;&amp;nbsp;using System.IO; &lt;br /&gt;&amp;nbsp;&amp;nbsp;using System.Runtime.InteropServices; &lt;br /&gt;&amp;nbsp;&amp;nbsp;using Microsoft.Win32; &lt;br /&gt;&amp;nbsp;&amp;nbsp;using System.Diagnostics; &lt;br /&gt;&amp;nbsp;&amp;nbsp;public partial class _Default : System.Web.UI.Page &lt;br /&gt;&amp;nbsp;&amp;nbsp;...{ &lt;br /&gt;&amp;nbsp;&amp;nbsp; protected void Page_Load(object sender, EventArgs e) &lt;br /&gt;&amp;nbsp;&amp;nbsp; ...{ &lt;br /&gt;&amp;nbsp;&amp;nbsp; //清清月儿 http://blog.csdn.net/21aspnet/ &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; protected void Button1_Click(object sender, EventArgs e) &lt;br /&gt;&amp;nbsp;&amp;nbsp; ...{ &lt;br /&gt;&amp;nbsp;&amp;nbsp; //压缩 &lt;br /&gt;&amp;nbsp;&amp;nbsp; String the_rar; &lt;br /&gt;&amp;nbsp;&amp;nbsp; RegistryKey the_Reg; &lt;br /&gt;&amp;nbsp;&amp;nbsp; Object the_Obj; &lt;br /&gt;&amp;nbsp;&amp;nbsp; String the_Info; &lt;br /&gt;&amp;nbsp;&amp;nbsp; ProcessStartInfo the_StartInfo; &lt;br /&gt;&amp;nbsp;&amp;nbsp; Process the_Process; &lt;br /&gt;&amp;nbsp;&amp;nbsp; try &lt;br /&gt;&amp;nbsp;&amp;nbsp; ...{ &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_Reg = Registry.ClassesRoot.OpenSubKey(&amp;quot;Applications\WinRAR.exe\Shell\Open\Command&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_Obj = the_Reg.GetValue(&amp;quot;&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_rar = the_Obj.ToString(); &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_Reg.Close(); &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_rar = the_rar.Substring(1, the_rar.Length - 7); &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_Info = &amp;quot; a &amp;quot; + &amp;quot; 1.rar &amp;quot; + &amp;quot; &amp;quot; + &amp;quot;C:\1\1.txt&amp;quot;; &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_StartInfo = new ProcessStartInfo(); &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_StartInfo.FileName = the_rar; &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_StartInfo.Arguments = the_Info; &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden; &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_StartInfo.WorkingDirectory = &amp;quot;C:\1&amp;quot;;//获取或设置要启动的进程的初始目录。 &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_Process = new Process(); &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_Process.StartInfo = the_StartInfo; &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_Process.Start(); &lt;br /&gt;&amp;nbsp;&amp;nbsp; Response.Write(&amp;quot;压缩成功&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; catch (Exception ex) &lt;br /&gt;&amp;nbsp;&amp;nbsp; ...{ &lt;br /&gt;&amp;nbsp;&amp;nbsp; Response.Write(ex.ToString()); &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; protected void Button2_Click(object sender, EventArgs e) &lt;br /&gt;&amp;nbsp;&amp;nbsp; ...{ &lt;br /&gt;&amp;nbsp;&amp;nbsp; //解压缩 &lt;br /&gt;&amp;nbsp;&amp;nbsp; String the_rar; &lt;br /&gt;&amp;nbsp;&amp;nbsp; RegistryKey the_Reg; &lt;br /&gt;&amp;nbsp;&amp;nbsp; Object the_Obj; &lt;br /&gt;&amp;nbsp;&amp;nbsp; String the_Info; &lt;br /&gt;&amp;nbsp;&amp;nbsp; ProcessStartInfo the_StartInfo; &lt;br /&gt;&amp;nbsp;&amp;nbsp; Process the_Process; &lt;br /&gt;&amp;nbsp;&amp;nbsp; try &lt;br /&gt;&amp;nbsp;&amp;nbsp; ...{ &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_Reg = Registry.ClassesRoot.OpenSubKey(&amp;quot;Applications\WinRar.exe\Shell\Open\Command&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_Obj = the_Reg.GetValue(&amp;quot;&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_rar = the_Obj.ToString(); &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_Reg.Close(); &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_rar = the_rar.Substring(1, the_rar.Length - 7); &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_Info = &amp;quot; X &amp;quot; + &amp;quot; 1.rar &amp;quot; + &amp;quot; &amp;quot; + &amp;quot;C:\1&amp;quot;; &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_StartInfo = new ProcessStartInfo(); &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_StartInfo.FileName = the_rar; &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_StartInfo.Arguments = the_Info; &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden; &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_Process = new Process(); &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_Process.StartInfo = the_StartInfo; &lt;br /&gt;&amp;nbsp;&amp;nbsp; the_Process.Start(); &lt;br /&gt;&amp;nbsp;&amp;nbsp; Response.Write(&amp;quot;解压缩成功&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; catch (Exception ex) &lt;br /&gt;&amp;nbsp;&amp;nbsp; ...{ &lt;br /&gt;&amp;nbsp;&amp;nbsp; Response.Write(ex.ToString()); &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;服务器端目 &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;img src=&quot;http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/2007061302.gif&quot; alt=&quot;&quot; /&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;客户端变通压缩 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;img src=&quot;http://p.blog.csdn.net/images/p_blog_csdn_net/21aspnet/2007061303.gif&quot; alt=&quot;&quot; /&gt;</description><category>『.Net』</category><pubDate>Wed, 04 Jul 2007 20:15:14 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/DotNet/200707/64.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-07-04T12:15:14Z</dc:date><fs:srclink>http://blog.mobilelook.cn/DotNet/200707/64.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/12486184/1503640</fs:itemid></item><item><title>ORACLE和SQLServer语法区别归纳</title><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/12486185/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=63</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=63&amp;key=ceb83658</trackback:ping><description>&lt;p&gt;&lt;font face=&quot;Verdana&quot;&gt;数据类型比较&lt;br /&gt;&lt;br /&gt;类型名称&lt;br /&gt;Oracle&lt;br /&gt;SQLServer&lt;br /&gt;比较&lt;br /&gt;&lt;br /&gt;字符数据类型 CHAR CHAR 都是固定长度字符资料但oracle里面最大度为2kb，SQLServer里面最大长度为8kb &lt;br /&gt;变长字符数据类型 VARCHAR2 VARCHAR Oracle里面最大长度为4kb，SQLServer里面最大长度为8kb &lt;br /&gt;根据字符集而定的固定长度字符串 NCHAR NCHAR 前者最大长度2kb后者最大长度4kb &lt;br /&gt;根据字符集而定的可变长度字符串 NVARCHAR2 NVARCHAR 二者最大长度都为4kb &lt;br /&gt;日期和时间数据类型 DATE 有Datetime和Smalldatetime两种 在oracle里面格式为DMY在SQLSerser里面可以调节，默认的为MDY &lt;br /&gt;数字类型 NUMBER(P,S) NUMERIC[P(,S)] Oracle里面p代表小数点左面的位数，s代表小数点右面的位数。而SQLServer里面p代表小数点左右两面的位数之和，s代表小数点右面的位数。 &lt;br /&gt;数字类型 DECIMAL(P,S) DECIMAL[P(,S)] Oracle里面p代表小数点左面的位数，s代表小数点右面的位数。而SQLServer里面p代表小数点左右两面的位数之和，s代表小数点右面的位数。 &lt;br /&gt;整数类型 INTEGER INT 同为整数类型，存储大小都为4个字节 &lt;br /&gt;浮点数类型 FLOAT FLOAT &lt;br /&gt;实数类型 REAL REAL &lt;br /&gt;&lt;br /&gt;ORACLE内部函数大全以及与SQLSERVER的区别：&lt;br /&gt;下面是Oracle支持的字符函数和它们的Microsoft SQL Server等价函数。&lt;br /&gt;&lt;br /&gt;函数 Oracle Microsoft SQL　Server &lt;br /&gt;把字符转换为ASCII :ASCII ASCII &lt;br /&gt;字串连接: CONCAT --------------(expression + expression) &lt;br /&gt;把ASCII转换为字符 CHR, CHAR &lt;br /&gt;返回字符串中的开始字符（左起） INSTR ,---------------CHARINDEX &lt;br /&gt;把字符转换为小写 LOWER ---------------------LOWER &lt;br /&gt;把字符转换为大写 UPPER-------------------- UPPER &lt;br /&gt;填充字符串的左边 LPAD --------------------N/A &lt;br /&gt;清除开始的空白 LTRIM--------------------LTRIM &lt;br /&gt;清除尾部的空白 RTRIM --------------------RTRIM &lt;br /&gt;字符串中的起始模式（pattern） INSTR --------------------PATINDEX &lt;br /&gt;多次重复字符串 RPAD --------------------REPLICATE &lt;br /&gt;字符串的语音表示 SOUNDEX --------------------SOUNDEX &lt;br /&gt;重复空格的字串 RPAD --------------------SPACE &lt;br /&gt;从数字数据转换为字符数据 TO_CHAR --------------------STR &lt;br /&gt;子串 SUBSTR --------------------SUBSTRING &lt;br /&gt;替换字符 REPLACE --------------------STUFF &lt;br /&gt;将字串中的每个词首字母大写 INITCAP --------------------N/A &lt;br /&gt;翻译字符串 TRANSLATE --------------------N/A &lt;br /&gt;字符串长度 LENGTH-------------------- DATELENGTH or LEN &lt;br /&gt;列表中最大的字符串 GREATEST-------------------- N/A &lt;br /&gt;列表中最小的字符串 LEAST --------------------N/A &lt;br /&gt;如果为NULL则转换字串 NVL-------------------- ISNULL &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;日期函数&lt;br /&gt;&lt;br /&gt;下面是Oracle支持的日期函数和它们的Microsoft SQL Server等价函数。&lt;br /&gt;&lt;br /&gt;函数 Oracle --------------------Microsoft SQL　Server &lt;br /&gt;日期相加 (date column +/- value) or ADD_MONTHS --------------------DATEADD &lt;br /&gt;&lt;br /&gt;两个日期的差 (date column +/- value) or MONTHS_BETWEEN --------------------DATEDIFF &lt;br /&gt;当前日期和时间 SYSDATE --------------------GETDATE() &lt;br /&gt;一个月的最后一天 LAST_DAY --------------------N/A &lt;br /&gt;时区转换 NEW_TIME --------------------N/A &lt;br /&gt;日期后的第一个周日 NEXT_DAY --------------------N/A &lt;br /&gt;代表日期的字符串 TO_CHAR --------------------DATENAME &lt;br /&gt;代表日期的整数 TO_NUMBER (TO_CHAR)) --------------------DATEPART &lt;br /&gt;日期舍入 ROUND --------------------CONVERT &lt;br /&gt;日期截断 TRUNC --------------------CONVERT &lt;br /&gt;字符串转换为日期 TO_DATE --------------------CONVERT &lt;br /&gt;如果为NULL则转换日期 NVL -------------------- ISNULL &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;转换函数&lt;br /&gt;&lt;br /&gt;下面是Oracle支持的转换函数和它们的Microsoft SQL Server等价函数。&lt;br /&gt;&lt;br /&gt;函数 Oracle --------------------Microsoft SQL　Server &lt;br /&gt;数字转换为字符 TO_CHAR --------------------CONVERT &lt;br /&gt;字符转换为数字 TO_NUMBER --------------------CONVERT &lt;br /&gt;日期转换为字符 TO_CHAR --------------------CONVERT &lt;br /&gt;字符转换为日期 TO_DATE CONVERT &lt;br /&gt;16进制转换为2进制 HEX_TO_RAW --------------------CONVERT &lt;br /&gt;2进制转换为16进制 RAW_TO_HEX --------------------CONVERT &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;其它行级别的函数&lt;br /&gt;&lt;br /&gt;下面是Oracle支持的其它行级别的函数以及它们的Microsoft SQL Server等价函数。&lt;br /&gt;&lt;br /&gt;函数 Oracle --------------------Microsoft SQL　Server &lt;br /&gt;返回第一个非空表达式 DECODE -------------------------------------COALESCE &lt;br /&gt;当前序列值 CURRVAL --------------------N/A &lt;br /&gt;下一个序列值 NEXTVAL --------------------N/A &lt;br /&gt;&lt;br /&gt;用户登录账号ID数字 UID --------------------SUSER_ID &lt;br /&gt;用户登录名 USER --------------------SUSER_NAME &lt;br /&gt;用户数据库ID数字 UID --------------------USER_ID &lt;br /&gt;用户数据库名 USER --------------------USER_NAME &lt;br /&gt;当前用户 CURRENT_USER -------------------- CURRENT_USER &lt;br /&gt;用户环境(audit trail) USERENV --------------------N/A &lt;br /&gt;在CONNECT BY子句中的级别 LEVEL --------------------N/A &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;合计函数&lt;br /&gt;&lt;br /&gt;下面是Oracle支持的合计函数和它们的Microsoft SQL Server等价函数。&lt;br /&gt;&lt;br /&gt;函数 Oracle --------------------Microsoft SQL　Server &lt;br /&gt;Average AVG -------------------- AVG &lt;br /&gt;Count COUNT --------------------COUNT &lt;br /&gt;Maximum MAX -------------------- MAX &lt;br /&gt;Minimum MIN --------------------MIN &lt;br /&gt;Standard deviation STDDEV --------------------STDEV or STDEVP &lt;br /&gt;Summation SUM -------------------- SUM &lt;br /&gt;Variance VARIANCE --------------------VAR or VARP &lt;/font&gt;&lt;br /&gt;条件测试&lt;br /&gt;&lt;br /&gt;Oracle的DECODE语句和Microsoft SQL Server的CASE表达式都执行条件测试。&lt;br /&gt;当test_value中的值和后面的任何表达式匹配的时候，相关的值就返回。如果没有找到任何匹配的值，就返回default_value。&lt;br /&gt;如果没有指定default_value，在没有匹配的时候，DECODE和CASE都返回一个NULL。下表显示了该语句的语法，&lt;br /&gt;同时给出了转换DECODE命令的示例。&lt;br /&gt;&lt;br /&gt;Oracle Microsoft SQL　 &lt;br /&gt;DECODE (test_value,&lt;br /&gt;expression1, value1&lt;br /&gt;&amp;lt;,expression2, value2] [&amp;hellip;&amp;gt;&lt;br /&gt;[,default_value]&lt;br /&gt;) &lt;br /&gt;CREATE VIEW STUDENT_ADMIN.STUDENT_GPA&lt;br /&gt;(SSN, GPA)&lt;br /&gt;AS SELECT SSN, ROUND(AVG(DECODE(grade&lt;br /&gt;,'A', 4&lt;br /&gt;,'A+', 4.3&lt;br /&gt;,'A-', 3.7&lt;br /&gt;,'B', 3&lt;br /&gt;,'B+', 3.3&lt;br /&gt;,'B-', 2.7&lt;br /&gt;,'C', 2&lt;br /&gt;,'C+', 2.3&lt;br /&gt;,'C-', 1.7&lt;br /&gt;,'D', 1&lt;br /&gt;,'D+', 1.3&lt;br /&gt;,'D-', 0.7&lt;br /&gt;,0)),2)&lt;br /&gt;FROM STUDENT_ADMIN.GRADE&lt;br /&gt;GROUP BY SSN&lt;br /&gt;CASE input_expression&lt;br /&gt;WHEN when_expression THEN 　　　result_expression&lt;br /&gt;&lt;br /&gt;[ELSE else_result_expression]&lt;br /&gt;END &lt;br /&gt;CREATE VIEW STUDENT_ADMIN.STUDENT_GPA&lt;br /&gt;(SSN, GPA)&lt;br /&gt;AS SELECT SSN, ROUND(AVG(CASE grade&lt;br /&gt;WHEN 'A' THEN 4&lt;br /&gt;WHEN 'A+' THEN 4.3&lt;br /&gt;WHEN 'A-' THEN 3.7&lt;br /&gt;WHEN 'B' THEN 3&lt;br /&gt;WHEN 'B+' THEN 3.3&lt;br /&gt;WHEN 'B-' THEN 2.7&lt;br /&gt;WHEN 'C' THEN 2&lt;br /&gt;WHEN 'C+' THEN 2.3&lt;br /&gt;WHEN 'C-' THEN 1.7&lt;br /&gt;WHEN 'D' THEN 1&lt;br /&gt;WHEN 'D+' THEN 1.3&lt;br /&gt;WHEN 'D-' THEN 0.7&lt;br /&gt;ELSE 0&lt;br /&gt;END),2)&lt;br /&gt;FROM STUDENT_ADMIN.GRADE&lt;br /&gt;GROUP BY SSN &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;CASE表达式可以支持用SELECT语句执行布尔测试，这是DECODE命令所不允许的。欲了解关于CASE表达式的详细信息，&lt;br /&gt;请参阅SQL Server联机手册。&lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;把值转换为不同的数据类型&lt;br /&gt;&lt;br /&gt;Microsoft SQL Server的CONVERT和CAST函数都是多目标转换函数。它们提供了相似的功能，&lt;br /&gt;把一种数据类型的表达式转换为另一种数据类型的表达式，并且支持多种专门数据的格式。&lt;br /&gt;&lt;br /&gt;CAST(expression AS data_type) &lt;br /&gt;CONVERT (data type[(length)], expression [, style]) &lt;br /&gt;CAST是一个SQL-92标准的函数。这些函数执行同Oracle的TO_CHAR、TO_NUMBER、TO_DATE、HEXTORAW以及RAWTOTEXT函数相同的功能。&lt;br /&gt;&lt;br /&gt;这里所指的数据类型是任何表达式将被转换成为的系统数据类型。不能使用用户定义的数据类型。长度参数是可选的，&lt;br /&gt;该参数用于char、varchar、binary以及varbinary数据类型。允许的最大长度是8000。&lt;br /&gt;&lt;br /&gt;转换 Oracle Microsoft SQL　Server &lt;br /&gt;字符到数字 TO_NUMBER(?') --------------------CONVERT(numeric, ?') &lt;br /&gt;数字到字符 TO_CHAR(10) --------------------CONVERT(char, 10) &lt;br /&gt;字符到日期 TO_DATE(?-JUL-97')&lt;br /&gt;TO_DATE(?-JUL-1997','dd-mon-yyyy') &lt;br /&gt;&lt;br /&gt;TO_DATE('July 4, 1997', 'Month dd, yyyy') --------------------CONVERT(datetime, ?-JUL-97')&lt;br /&gt;&lt;br /&gt;CONVERT(datetime, ?-JUL-1997')&lt;br /&gt;CONVERT(datetime, 'July 4, 1997') &lt;br /&gt;日期到字符 TO_CHAR(sysdate)&lt;br /&gt;TO_CHAR(sysdate, 'dd mon yyyy')&lt;br /&gt;TO_CHAR(sysdate, 'mm/dd/yyyy') --------------------CONVERT(char, GETDATE())&lt;br /&gt;CONVERT(char, GETDATE(), 106)&lt;br /&gt;CONVERT(char, GETDATE(), 101) &lt;br /&gt;16进制到2进制 HEXTORAW(?F')-------------------- CONVERT(binary, ?F') &lt;br /&gt;2进制到16进制 RAWTOHEX(binary_column) --------------------CONVERT(char, binary_column) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;请注意字符串是怎样转换为日期的。在Oracle中，缺省的日期格式模型是&amp;ldquo;DD-MON-YY&amp;rdquo;如果你使用任何其它格式，&lt;br /&gt;你必须提供一个合适的日期格式模型。CONVERT函数自动转换标准日期格式，不需要任何格式模型。&lt;br /&gt;&lt;br /&gt;从日期转换到字符串时，CONVERT函数的缺省输出是&amp;ldquo;dd mon yyyy hh:mm:ss:mmm(24h)&amp;rdquo;。&lt;br /&gt;用一个数字风格代码来格式化输出，使它能输出为其它类型的日期格式模型。欲了解CONVERT函数的详细信息，请参阅SQL Server联机手册。&lt;br /&gt;&lt;br /&gt;下表显示了Microsoft SQL Server日期的缺省输出。&lt;br /&gt;&lt;br /&gt;Without Century With Century Standard Output &lt;br /&gt;- 0 or 100 (*) Default mon dd yyyy hh:miAM (or PM) &lt;br /&gt;1 101 USA mm/dd/yy &lt;br /&gt;2 102 ANSI yy.mm.dd &lt;br /&gt;3 103 British/French dd/mm/yy &lt;br /&gt;4 104 German dd.mm.yy &lt;br /&gt;5 105 Italian dd-mm-yy &lt;br /&gt;6 106 - dd mon yy &lt;br /&gt;7 107 - mon dd, yy &lt;br /&gt;8 108 - hh:mm:ss &lt;br /&gt;- 9 or 109 (*) Default milliseconds mon dd yyyy hh:mi:ss:mmm (AM or PM) &lt;br /&gt;10 110 USA mm-dd-yy &lt;br /&gt;11 111 Japan yy/mm/dd &lt;br /&gt;12 112 ISO yymmdd &lt;br /&gt;- 13 or 113 (*) Europe default dd mon yyyy hh:mm:ss:mmm(24h) &lt;br /&gt;14 114 - hh:mi:ss:mmm(24h) &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;用户定义函数&lt;br /&gt;&lt;br /&gt;Oracle PL/SQL函数可以在Oracle SQL语句中使用。在Microsoft SQL Server中一般可以通过其它方式来实现同样的功能。&lt;br /&gt;&lt;br /&gt;在SQL Server中可以用表中给出的查询来代替。&lt;br /&gt;&lt;br /&gt;Oracle Microsoft SQL　Server &lt;br /&gt;SELECT SSN, FNAME, LNAME, ) 　　　TUITION_PAID,&lt;br /&gt;　　TUITION_PAID/GET_SUM_&lt;br /&gt;　　MAJOR(MAJOR)&lt;br /&gt;　　AS PERCENT_MAJOR&lt;br /&gt;FROM STUDENT_ADMIN.STUDENT SELECT SSN, FNAME, LNAME, TUITION_PAID, TUITION_PAID/SUM_MAJOR AS PERCENT_MAJOR&lt;br /&gt;FROM STUDENT_ADMIN.STUDENT,&lt;br /&gt;　　(SELECT MAJOR, 　　　　　SUM(TUITION_PAID) SUM_MAJOR&lt;br /&gt;　　FROM STUDENT_ADMIN.STUDENT&lt;br /&gt;　　GROUP BY MAJOR) SUM_STUDENT&lt;br /&gt;WHERE STUDENT.MAJOR = 　　　　　SUM_STUDENT.MAJOR &lt;br /&gt;CREATE OR REPLACE FUNCTION GET_SUM_MAJOR&lt;br /&gt;(INMAJOR VARCHAR2) RETURN NUMBER&lt;br /&gt;AS SUM_PAID NUMBER;&lt;br /&gt;BEGIN&lt;br /&gt;SELECT SUM(TUITION_PAID) INTO 　　　SUM_PAID&lt;br /&gt;FROM STUDENT_ADMIN.STUDENT&lt;br /&gt;WHERE MAJOR = INMAJOR;&lt;br /&gt;RETURN(SUM_PAID);&lt;br /&gt;END GET_SUM_MAJOR; No CREATE FUNCTION syntax is required; use CREATE PROCEDURE syntax. &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;比较操作符&lt;br /&gt;&lt;br /&gt;Oracle和Microsoft SQL Server的比较操作符几乎是一样的。&lt;br /&gt;&lt;br /&gt;算符 Oracle Microsoft SQL　Server &lt;br /&gt;等于 (=) (=) &lt;br /&gt;大于 (&amp;gt; ) (&amp;gt; ) &lt;br /&gt;小于 (&amp;lt; ) (&amp;lt; ) &lt;br /&gt;大于或等于 (&amp;gt;=) (&amp;gt;=) &lt;br /&gt;小于或等于 (&amp;lt;=) (&amp;lt;=) &lt;br /&gt;不等于 (!=, &amp;lt;&amp;gt;, ^=) (!=, &amp;lt;&amp;gt;, ^=) &lt;br /&gt;不大于，不小于 N/A !&amp;gt; , !&amp;lt; &lt;br /&gt;在集合中任意成员中 IN IN &lt;br /&gt;不在集合中的任何成员中 NOT IN NOT IN &lt;br /&gt;集合中的任意值 ANY, SOME ANY, SOME &lt;br /&gt;提交集合中的所有值 != ALL, &amp;lt;&amp;gt; ALL, &amp;lt; ALL,&lt;br /&gt;&amp;gt; ALL, &amp;lt;= ALL, &amp;gt;= ALL, !=　SOME, &amp;lt;&amp;gt;　SOME, &lt;br /&gt;&amp;lt;　SOME, &amp;gt;　SOME, &lt;br /&gt;&amp;lt;=　SOME, &amp;gt;=　SOME != ALL, &amp;lt;&amp;gt; ALL, &amp;lt; ALL,&lt;br /&gt;&amp;gt; ALL, &amp;lt;= ALL, &amp;gt;= ALL, !=　SOME, &amp;lt;&amp;gt;　SOME, &lt;br /&gt;&amp;lt;　SOME, &amp;gt;　SOME, &lt;br /&gt;&amp;lt;=　SOME, &amp;gt;=　SOME &lt;br /&gt;像模式（Like pattern） LIKE LIKE &lt;br /&gt;不像模式（Not like pattern） NOT LIKE NOT LIKE &lt;br /&gt;X和y之间的值 BETWEEN x AND y BETWEEN x AND y &lt;br /&gt;不在x和y之间的值 NOT BETWEEN NOT BETWEEN &lt;br /&gt;值存在 EXISTS EXISTS &lt;br /&gt;值不存在 NOT EXISTS NOT EXISTS &lt;br /&gt;值{为|不为}空 IS NULL, IS NOT NULL Same. Also = NULL, &lt;br /&gt;!=　NULL for backward compatibility (not recommended). &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;模式匹配&lt;br /&gt;&lt;br /&gt;SQL Server的LIKE关键字提供了有用的通配符搜索功能，这个功能在Oracle中不支持&lt;br /&gt;除了所有的RDBMS都支持的（%）和（_）通配符以外，SQL Server还支持（[ ]）和（[^]）通配符。&lt;br /&gt;&lt;br /&gt;（[ ]）字符用来查询在一个范围内的所有单个字符。例如，如果你需要查询包含一个从a到f的字符的数据，&lt;br /&gt;你可以这样写：&amp;ldquo;LIKE '[a-f]'&amp;rdquo;或者&amp;ldquo;LIKE '[abcdef]'&amp;rdquo;。这些附加的通配符的有效性在下表中给出。&lt;br /&gt;&lt;br /&gt;Oracle Microsoft SQL　 &lt;br /&gt;SELECT * FROM STUDENT_ADMIN.STUDENT&lt;br /&gt;WHERE LNAME LIKE 'A%'&lt;br /&gt;OR LNAME LIKE 'B%'&lt;br /&gt;OR LNAME LIKE 'C%' SELECT * FROM STUDENT_ADMIN.STUDENT&lt;br /&gt;WHERE LNAME LIKE '[ABC]%' &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;[^]通配符用来标记那些不在特定范围内的字符。例如，如果除了a到f以外的所有字符都是可以接受的，你可以这样书写：&lt;br /&gt;LIKE '[^a - f]'或者LIKE '[^abcdef]'。&lt;br /&gt;&lt;br /&gt;欲了解关于LIKE关键字的详细信息，请参阅SQL Server联机手册。 &lt;/p&gt;&lt;p&gt;在比较中使用NULL&lt;br /&gt;&lt;br /&gt;尽管Microsoft SQL Server传统上支持SQL-92标准的和一些非标准的NULL行为，但是它还是支持Oracle中的NULL的用法。&lt;br /&gt;&lt;br /&gt;为了支持分布式查询，SET ANSI_NULLS必须设定为ON。&lt;br /&gt;&lt;br /&gt;在进行连接的时候，SQL Server的SQL Server ODBC驱动程序和OLE DB提供者自动把SET ANSI_NULLS设定为ON。&lt;br /&gt;这个设置可以在ODBC数据源、ODBC连接属性、或者是在连接到SQL Server之前在应用程序中设置的OLE DB连接属性中进行配置。&lt;br /&gt;在从DB-Library应用程序中连接时，SET ANSI_NULLS缺省为OFF。&lt;br /&gt;&lt;br /&gt;当SET ANSI_DEFAULTS为ON时，SET ANSI_NULLS被允许。&lt;br /&gt;&lt;br /&gt;欲了解关于NULL用法的详细信息，请参阅SQL Server联机手册。&lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;字串连接&lt;br /&gt;&lt;br /&gt;Oracle使用两个管道符号（||）来作为字串连接操作符，SQL Server则使用加号（+）。这个差别要求你在应用程序中做小小的修改。&lt;br /&gt;&lt;br /&gt;Oracle Microsoft SQL　 &lt;br /&gt;SELECT FNAME||' '||LNAME AS NAME&lt;br /&gt;FROM STUDENT_ADMIN.STUDENT&lt;br /&gt;-----------------------------------------------&lt;br /&gt;SELECT FNAME +' '+ LNAME AS 　　　NAME&lt;br /&gt;FROM STUDENT_ADMIN.STUDENT &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;流控制（Control-of-Flow）语言&lt;br /&gt;&lt;br /&gt;流控制语言控制SQL语句执行流，语句块以及存储过程。PL/SQL和Transact-SQL提供了多数相同的结构，但是还是有一些语法差别。&lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;关键字&lt;br /&gt;&lt;br /&gt;这是两个RDBMS支持的关键字。&lt;br /&gt;&lt;br /&gt;语句 Oracle PL/SQL ---------------------Microsoft SQL　Server Transact-SQL &lt;br /&gt;&lt;br /&gt;声明变量 DECLARE DECLARE &lt;br /&gt;语句块 BEGIN...END; BEGIN...END &lt;br /&gt;条件处理 IF&amp;hellip;THEN,&lt;br /&gt;ELSIF&amp;hellip;THEN,&lt;br /&gt;ELSE&lt;br /&gt;ENDIF; &lt;br /&gt;--------------------------------------------------------&lt;br /&gt;IF&amp;hellip;[BEGIN&amp;hellip;END]&lt;br /&gt;ELSE &amp;lt;condition&amp;gt;&lt;br /&gt;[BEGIN&amp;hellip;END]&lt;br /&gt;ELSE IF &amp;lt;condition&amp;gt;&lt;br /&gt;CASE expression &lt;br /&gt;无条件结束 RETURN------------ RETURN &lt;br /&gt;无条件结束当前程序块后面的语句 EXIT BREAK &lt;br /&gt;重新开始一个WHILE循环 N/A CONTINUE &lt;br /&gt;等待指定间隔 N/A (dbms_lock.sleep) WAITFOR &lt;br /&gt;循环控制 WHILE LOOP&amp;hellip;END LOOP; &lt;br /&gt;------------&lt;br /&gt;LABEL&amp;hellip;GOTO LABEL;&lt;br /&gt;FOR&amp;hellip;END LOOP;&lt;br /&gt;LOOP&amp;hellip;END LOOP;&lt;br /&gt;WHILE &amp;lt;condition&amp;gt;&lt;br /&gt;BEGIN&amp;hellip; END&lt;br /&gt;LABEL&amp;hellip;GOTO LABEL &lt;br /&gt;&lt;br /&gt;程序注释 /* &amp;hellip; */, -- /* &amp;hellip; */, -- &lt;br /&gt;打印输出 RDBMS_OUTPUT.PUT_LINE PRINT &lt;br /&gt;&lt;br /&gt;引发程序错误（Raise program error） RAISE_APPLICATION_ERROR --------------------RAISERROR &lt;br /&gt;&lt;br /&gt;执行程序 EXECUTE----------------------EXECUTE &lt;br /&gt;语句终止符 Semicolon ( ------------------N/A &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;声明变量&lt;br /&gt;&lt;br /&gt;Transact-SQL和PL/SQL的变量是用DECLARE关键字创建的。Transact-SQL变量用@标记，&lt;br /&gt;并且就像PL/SQL一样，在第一次创建时，用空值初始化。&lt;br /&gt;&lt;br /&gt;Oracle Microsoft SQL　 &lt;br /&gt;DECLARE&lt;br /&gt;VSSN CHAR(9);&lt;br /&gt;VFNAME VARCHAR2(12);&lt;br /&gt;VLNAME VARCHAR2(20);&lt;br /&gt;VBIRTH_DATE DATE;&lt;br /&gt;VLOAN_AMOUNT NUMBER(12,2); &lt;br /&gt;-----------------------------------------&lt;br /&gt;DECLARE&lt;br /&gt;@VSSN CHAR(9),&lt;br /&gt;@VFNAME VARCHAR2(12),&lt;br /&gt;@VLNAME VARCHAR2(20),&lt;br /&gt;@VBIRTH_DATE DATETIME,&lt;br /&gt;@VLOAN_AMOUNT NUMERIC(12,2) &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;Transact-SQL不支持%TYPE和%ROWTYPE变量数据类型定义。一个Transact-SQL变量不能在DECLARE命令中初始化。&lt;br /&gt;在Microsoft SQL Server数据类型定义中也不能使用Oracle的NOT NULL和CONSTANT关键字。&lt;br /&gt;&lt;br /&gt;像Oracle的LONG和LONG RAW数据类型一样。文本和图形数据类型不能被用做变量定义。&lt;br /&gt;此外，Transact-SQL不支持PL/SQL风格的记录和表的定义。&lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;给变量赋值&lt;br /&gt;&lt;br /&gt;Oracle和Microsoft SQL Server提供了下列方法来为本地变量赋值。&lt;br /&gt;&lt;br /&gt;Oracle Microsoft SQL　 &lt;br /&gt;Assignment operator (:=) ---------------------SET @local_variable = value &lt;br /&gt;SELECT...INTO syntax for selecting column values from a single row&lt;br /&gt;------------------------- &lt;br /&gt;SELECT @local_variable = expression [FROM&amp;hellip;] for assigning a literal value,&lt;br /&gt;an expression involving other local variables, or a column value from a single row &lt;br /&gt;&lt;br /&gt;FETCH&amp;hellip;INTO syntax------------------------------- FETCH&amp;hellip;INTO syntax &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;这里有一些语法示例&lt;br /&gt;&lt;br /&gt;Oracle Microsoft SQL　 &lt;br /&gt;DECLARE VSSN CHAR(9);&lt;br /&gt;VFNAME VARCHAR2(12);&lt;br /&gt;VLNAME VARCHAR2(20);&lt;br /&gt;BEGIN&lt;br /&gt;VSSN := ?'&lt;br /&gt;SELECT FNAME, LNAME INTO VFNAME, VLNAME FROM STUDENTS WHERE SSN=VSSN;&lt;br /&gt;END; &lt;br /&gt;------------------------------------------------------------------------------&lt;br /&gt;DECLARE @VSSN CHAR(9),&lt;br /&gt;@VFNAME VARCHAR(12),&lt;br /&gt;@VLNAME VARCHAR(20)&lt;br /&gt;SET @VSSN = ?'&lt;br /&gt;SELECT @VFNAME=FNAME, @VLNAME=LNAME FROM STUDENTS WHERE SSN = @VSSN &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;语句块&lt;br /&gt;&lt;br /&gt;Oracle PL/SQL和Microsoft SQL Server Transact-SQL都支持用BEGIN&amp;hellip;END术语来标记语句块。&lt;br /&gt;Transact-SQL不需要在DECLARE语句后使用一个语句块。&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;-如果在Microsoft SQL Server&lt;br /&gt;中的IF语句和WHILE循环中有多于一个语句被执行，则需要使用BEGIN&amp;hellip;END语句块。&lt;br /&gt;&lt;br /&gt;Oracle Microsoft SQL　 &lt;br /&gt;DECLARE&lt;br /&gt;DECLARE VARIABLES ...&lt;br /&gt;BEGIN -- THIS IS REQUIRED SYNTAX&lt;br /&gt;PROGRAM_STATEMENTS ...&lt;br /&gt;IF ...THEN&lt;br /&gt;STATEMENT1;&lt;br /&gt;STATEMENT2;&lt;br /&gt;STATEMENTN;&lt;br /&gt;END IF;&lt;br /&gt;WHILE ... LOOP&lt;br /&gt;STATEMENT1;&lt;br /&gt;STATEMENT2;&lt;br /&gt;STATEMENTN;&lt;br /&gt;END LOOP;&lt;br /&gt;END; -- THIS IS REQUIRED SYNTAX DECLARE&lt;br /&gt;DECLARE VARIABLES ...&lt;br /&gt;BEGIN -- THIS IS OPTIONAL SYNTAX&lt;br /&gt;PROGRAM_STATEMENTS ...&lt;br /&gt;IF ...&lt;br /&gt;BEGIN &lt;br /&gt;STATEMENT1&lt;br /&gt;STATEMENT2&lt;br /&gt;STATEMENTN&lt;br /&gt;END &lt;br /&gt;WHILE ... &lt;br /&gt;BEGIN&lt;br /&gt;STATEMENT1&lt;br /&gt;STATEMENT2&lt;br /&gt;STATEMENTN&lt;br /&gt;END &lt;br /&gt;END -- THIS IS REQUIRED SYNTAX &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;条件处理&lt;br /&gt;&lt;br /&gt;Microsoft SQL Server Transact-SQL的条件语句包括IF和ELSE，但不包括Oracle PL/SQL中的ELSEIF语句。&lt;br /&gt;可以用嵌套多重IF语句来到达同样的效果。对于广泛的条件测试，用CASE表达式也许更容易和可读一些。&lt;br /&gt;&lt;br /&gt;Oracle Microsoft SQL　 &lt;br /&gt;DECLARE&lt;br /&gt;VDEGREE_PROGRAM CHAR(1);&lt;br /&gt;VDEGREE_PROGRAM_NAME VARCHAR2(20);&lt;br /&gt;BEGIN&lt;br /&gt;VDEGREE_PROGRAM := 'U'&lt;br /&gt;IF VDEGREE_PROGRAM = 'U' THEN&lt;br /&gt;VDEGREE_PROGRAM_NAME := 'Undergraduate'&lt;br /&gt;&lt;br /&gt;ELSIF VDEGREE_PROGRAM = 'M' 　　　　　　　　THEN VDEGREE_PROGRAM_&lt;br /&gt;　　NAME := 'Masters'&lt;br /&gt;ELSIF VDEGREE_PROGRAM = 'P' 　　　　　　　　　　　THEN VDEGREE_PROGRAM_&lt;br /&gt;　　NAME := 'PhD'&lt;br /&gt;ELSE VDEGREE_PROGRAM_&lt;br /&gt;　　NAME := 'Unknown'&lt;br /&gt;END IF;&lt;br /&gt;END;&lt;br /&gt;-----------------------------------------------------&lt;br /&gt;DECLARE&lt;br /&gt;@VDEGREE_PROGRAM CHAR(1),&lt;br /&gt;@VDEGREE_PROGRAM_NAME VARCHAR(20)&lt;br /&gt;SELECT @VDEGREE_PROGRAM = 'U'&lt;br /&gt;SELECT @VDEGREE_PROGRAM_&lt;br /&gt;　　NAME = CASE @VDEGREE_PROGRAM&lt;br /&gt;　　WHEN 'U' THEN 'Undergraduate'&lt;br /&gt;　　WHEN 'M' THEN 'Masters'&lt;br /&gt;　　WHEN 'P' THEN 'PhD'.&lt;br /&gt;　　ELSE 'Unknown'&lt;br /&gt;END &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;重复执行语句（循环）&lt;br /&gt;&lt;br /&gt;Oracle PL/SQL提供了无条件的LOOP和FOR LOOP。Transact-SQL则提供了WHILE循环和GOTO语句。&lt;br /&gt;&lt;br /&gt;WHILE Boolean_expression&lt;br /&gt;{sql_statement | statement_block}&lt;br /&gt;&lt;br /&gt;[BREAK] [CONTINUE]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;WHILE循环需要测试一个布尔表达式来决定一个或者多个语句的重复执行。&lt;br /&gt;只要给定的表达式结果为真，这个（些）语句就一直重复执行下去。如果有多个语句需要执行，则这些语句必须放在一个BEGIN&amp;hellip;END块中。&lt;br /&gt;&lt;br /&gt;Oracle Microsoft SQL　 &lt;br /&gt;DECLARE&lt;br /&gt;COUNTER NUMBER;&lt;br /&gt;BEGIN&lt;br /&gt;COUNTER := 0&lt;br /&gt;WHILE (COUNTER &amp;lt;5) LOOP&lt;br /&gt;COUNTER := COUNTER + 1;&lt;br /&gt;END LOOP;&lt;br /&gt;END; &lt;br /&gt;------------------------------------------------------&lt;br /&gt;DECLARE&lt;br /&gt;@COUNTER NUMERIC&lt;br /&gt;SELECT@COUNTER = 1&lt;br /&gt;WHILE (@COUNTER &amp;lt;5)&lt;br /&gt;BEGIN&lt;br /&gt;　　SELECT @COUNTER = &lt;br /&gt;　　@COUNTER +1&lt;br /&gt;END &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;语句的执行可以在循环的内部用BREAK和CONTINUE关键字控制。BREAK关键字使WHILE循环无条件的结束，&lt;br /&gt;而CONTINUE关键字使WHILE循环跳过后面的语句重新开始。BREAK关键字同Oracle PL/SQL中的EXIT关键字是等价的。&lt;br /&gt;而在Oracle中没有和CONTINUE等价的关键字&lt;br /&gt;&lt;br /&gt;GOTO语句&lt;br /&gt;&lt;br /&gt;Oracle和Microsoft SQL Server都有GOTO语句，但是语法不同。GOTO语句使Transact-SQL跳到指定的标号处运行，&lt;br /&gt;在GOTO语句后指定标号之间的任何语句都不会被执行。&lt;br /&gt;&lt;br /&gt;Oracle Microsoft SQL　 &lt;br /&gt;GOTO label;&lt;br /&gt;&amp;lt;&amp;lt;label name here&amp;gt;&amp;gt; GOTO label &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;PRINT语句&lt;br /&gt;&lt;br /&gt;Transact-SQL的PRINT语句执行同PL/SQL的RDBMS_OUTPUT.put_line过程同样的操作。该语句用来打印用户给定的消息。&lt;br /&gt;&lt;br /&gt;用PRINT语句打印的消息上限是8,000个字符。定义为char或者varchar数据类型的变量可以嵌入打印语句。&lt;br /&gt;如果使用其它数据类型的变量，则必须使用CONVERT或者CAST函数。本地变量、全局变量可以被打印。可以用单引号或者双引号来封闭文本。&lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;从存储过程返回&lt;br /&gt;&lt;br /&gt;Microsoft SQL Server和Oracle都有RETURN语句。RETURN使你的程序从查询或者过程中无条件的跳出。RETURN是立即的、&lt;br /&gt;完全的、并且可以用于从过程、批处理或者语句块的任意部分跳出。在REUTRN后面的语句将不会被执行。&lt;br /&gt;&lt;br /&gt;Oracle Microsoft SQL　 &lt;br /&gt;RETURN expression: RETURN [integer_expression] &lt;/p&gt;&lt;p&gt;引发程序错误（Raising program errors）&lt;br /&gt;&lt;br /&gt;Transact-SQL的RAISERROR返回一个用户定义的错误消息，并且设置一个系统标志来记录发生了一个错误。&lt;br /&gt;这个功能同PL/SQL的raise_application_error异常处理器的功能是相似的。&lt;br /&gt;&lt;br /&gt;RAISERROR语句允许客户重新取得sysmessages表的一个入口，或者用用户指定的严重性和状态信息动态的建立一条消息。&lt;br /&gt;在被定义后，消息被送回客户端作为系统错误消息。&lt;br /&gt;&lt;br /&gt;RAISERROR ({msg_id | msg_str}, severity, state&lt;br /&gt;[, argument1 [, argument2&amp;gt; )&lt;br /&gt;&lt;br /&gt;[WITH options]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;在转换你的PL/SQL程序时，也许用不着使用RAISERROR语句。在下面的示例代码中。&lt;br /&gt;PL/SQL程序使用raise_application_error异常处理器，但是Transact-SQL程序则什么也没用。&lt;br /&gt;包括raise_application_error异常处理器是为了防止PL/SQL返回不明确的未经处理的异常错误消息。&lt;br /&gt;作为代替，当一个不可预见的问题发生的时候，异常处理器总是返回Oracle错误消息。&lt;br /&gt;&lt;br /&gt;当一个Transact-SQL失败时，它总是返回一个详细的错误消息给客户程序。因此，除非需要某些特定的错误处理，&lt;br /&gt;一般是不需要RAISERROR语句的。&lt;br /&gt;&lt;br /&gt;Oracle Microsoft SQL　 &lt;br /&gt;CREATE OR REPLACE FUNCTION&lt;br /&gt;DEPT_ADMIN.DELETE_DEPT&lt;br /&gt;(VDEPT IN VARCHAR2) RETURN NUMBER AS&lt;br /&gt;BEGIN&lt;br /&gt;DELETE FROM DEPT_ADMIN.DEPT&lt;br /&gt;WHERE DEPT = VDEPT;&lt;br /&gt;RETURN(SQL%ROWCOUNT);&lt;br /&gt;EXCEPTION&lt;br /&gt;WHEN OTHER THEN&lt;br /&gt;RAISE_APPLICATION_ERROR &lt;br /&gt;(-20001,SQLERRM);&lt;br /&gt;END DELETE_DEPT;&lt;br /&gt;------------------------------------------------------&lt;br /&gt;/ CREATE PROCEDURE&lt;br /&gt;DEPT_ADMIN.DELETE_DEPT&lt;br /&gt;@VDEPT VARCHAR(4) AS&lt;br /&gt;DELETE FROM DEPT_DB.DBO.DEPT&lt;br /&gt;WHERE DEPT = @VDEPT&lt;br /&gt;RETURN @@ROWCOUNT&lt;br /&gt;GO &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;实现游标&lt;br /&gt;&lt;br /&gt;Oracle在使用SELECT语句时总是需要游标，不管从数据库中请求多少行。在Microsoft SQL Server，&lt;br /&gt;SELECT语句并不把在返回客户的行上附加游标作为缺省的结果集合。这是一种返回数据给客户应用程序的有效的方法。&lt;br /&gt;&lt;br /&gt;SQL Server为游标函数提供了两种接口。当在Transact-SQL批处理或者存储过程中使用游标的时候，SQL语句可用来声明、&lt;br /&gt;打开、和从游标中抽取，就像定位更新和删除一样。当使用来自DB-Library、ODBC、或者OLEDB程序的游标时，SQL Server&lt;br /&gt;显式的调用内建的服务器函数来更有效的处理游标。&lt;br /&gt;&lt;br /&gt;当从Oracle输入一个PL/SQL过程时，首先判断是否需要在Transact-SQL中采用游标来实现同样的功能。如果游标仅仅返回一&lt;br /&gt;组行给客户程序，就使用非游标的SELECT语句来返回缺省的结果集合。如果游标用来从行中一次取得一个数据给本地过程变量，&lt;br /&gt;你就必须在Transact-SQL中使用游标。&lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;语法&lt;br /&gt;&lt;br /&gt;下表显示了使用游标的语法。&lt;br /&gt;&lt;br /&gt;操作 Oracle Microsoft SQL　Server &lt;br /&gt;声明一个游标 CURSOR cursor_name [(cursor_parameter(s))]&lt;br /&gt;IS select_statement; &lt;br /&gt;----------------------------------------------------&lt;br /&gt;DECLARE cursor_name CURSOR&lt;br /&gt;[LOCAL | GLOBAL]&lt;br /&gt;[FORWARD_ONLY | SCROLL]&lt;br /&gt;[STATIC | KEYSET | DYNAMIC | FAST_FORWARD]&lt;br /&gt;[READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]&lt;br /&gt;[TYPE_WARNING]&lt;br /&gt;FOR select_statement&lt;br /&gt;[FOR UPDATE [OF column_name [,&amp;hellip;n&amp;gt;] &lt;br /&gt;打开一个游标 OPEN cursor_name [(cursor_parameter(s))]; &lt;br /&gt;----------------&lt;br /&gt;OPEN cursor_name &lt;br /&gt;从游标中提取（Fetching） FETCH cursor_name INTO variable(s)&lt;br /&gt;-------------------------------------------------------------------------------------------&lt;br /&gt;FETCH FROM] cursor_name&lt;br /&gt;[INTO @variable(s)] &lt;br /&gt;更新提取行 UPDATE table_name&lt;br /&gt;SET statement(s)&amp;hellip;&lt;br /&gt;WHERE CURRENT OF cursor_name; UPDATE table_name&lt;br /&gt;SET statement(s)&amp;hellip;&lt;br /&gt;WHERE CURRENT OF cursor_name &lt;br /&gt;删除提取行 DELETE FROM table_name &lt;br /&gt;WHERE CURRENT OF cursor_name; DELETE FROM table_name &lt;br /&gt;WHERE CURRENT OF cursor_name &lt;br /&gt;关闭游标 CLOSE cursor_name; CLOSE cursor_name &lt;br /&gt;清除游标数据结构 N/A DEALLOCATE cursor_name &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;声明一个游标&lt;br /&gt;&lt;br /&gt;尽管Transact-SQL DECLARE CURSOR语句不支持游标参数的使用，但它确实支持本地变量。当游标打开的时候，&lt;br /&gt;它就使用这些本地变量的值。Microsoft SQL Server在其DECLARE CURSOR中提供了许多附加的功能。&lt;br /&gt;&lt;br /&gt;INSENSITIVE选项用来定义一个创建数据的临时拷贝以被游标使用的游标。游标的所有请求都由这个临时表来应答。因此&lt;br /&gt;对原表的修改不会反映到那些由fetch返回的用于该游标的数据上。这种类型的游标访问的数据是不能被修改的。&lt;br /&gt;&lt;br /&gt;应用程序可以请求一个游标类型然后执行一个不被所请求的服务器游标类型支持的Transact-SQL语句。SQL Server返回一个错误，&lt;br /&gt;指出该游标类型被改变了，或者给出一组参数，隐式的转换游标。欲取得一个触发SQL Server 7.0隐式的把游标从一种类型转换为&lt;br /&gt;另一种类型的参数的完整列表，请参阅SQL Server联机手册。&lt;br /&gt;&lt;br /&gt;SCROLL选项允许除了前向的抽取以外，向后的、绝对的和相对的数据抽取。一个滚动游标使用一种键集合的游标模型，在该模型中，&lt;br /&gt;任何用户提交的对表的删除和更新都将影响后来的数据抽取。只有在游标没有用INSENSITIVE选项声明时，上面的特性才起作用。&lt;br /&gt;&lt;br /&gt;如果选择了READ ONLY选项，对游标中的行的更新就被禁止。该选项将覆盖游标的缺省选项棗允许更新。&lt;br /&gt;&lt;br /&gt;UPDATE [OF column_list]语句用来在游标中定义一个可更新的列。如果提供了[OF column_list]，那么仅仅是那些列出的列可以被修改。&lt;br /&gt;如果没有指定任何列。则所有的列都是可以更新的，除非游标被定义为READ ONLY。&lt;br /&gt;&lt;br /&gt;重要的是，注意到一个SQL Server游标的名字范围就是连接自己。这和本地变量的名字范围是不同的。&lt;br /&gt;不能声明一个与同一个用户连接上的已有的游标相同名字的游标，除非第一个游标被释放。&lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;打开一个游标&lt;br /&gt;&lt;br /&gt;Transact-SQL不支持向一个打开的游标传递参数，这一点和PL/SQL是不一样的。当一个Transact-SQL游标被打开以后，&lt;br /&gt;结果集的成员和顺序就固定下来了。其它用户提交的对原表的游标的更新和删除将反映到对所有未加INSENSITIVE选项定义&lt;br /&gt;的游标的数据抽取上。对一个INSENSITIVE游标，将生成一个临时表。&lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;抽取数据&lt;br /&gt;&lt;br /&gt;Oracle游标只能向前移动棗没有向后或者相对滚动的能力。SQL Server游标可以向前或者向后滚动，具体怎么滚动，&lt;br /&gt;要由下表给出的数据抽取选项来决定。只有在游标是用SCROLL选项声明的前提下，这些选项才能使用。&lt;br /&gt;&lt;br /&gt;卷动选项 描述 &lt;br /&gt;NEXT 如果这是对游标的第一次提取，则返回结果集合的第一行；否则，在结果结合内移动游标到下一行。&lt;br /&gt;NEXT是在结果集合中移动的基本方法 。NEXT是缺省的游标提取（fetch）。 &lt;br /&gt;PRIOR 返回结果集合的前一行。 &lt;br /&gt;FIRST 把游标移动到结果集合的第一行，同时返回第一行。 &lt;br /&gt;LAST 把游标移动到结果集合的最后一行，同时返回最后一行。 &lt;br /&gt;ABSOLUTE n 返回结果集合的第n行。如果n为负数，则返回倒数第n行 &lt;br /&gt;RELATIVE n 返回当前提取行后的第n行，如果n是负数，则返回从游标相对位置起的倒数第n行。 &lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;Transact-SQL的FETCH语句不需要INTO子句。如果没有指定返回变量，行就自动作为一个单行结果集合返回给客户。但是，&lt;br /&gt;如果你的过程必须把行给客户，一个不带游标的SELECT语句更有效一些。&lt;br /&gt;&lt;br /&gt;在每一个FETCH后面，@@FETCH_STATUS函数被更新。这和在PL/SQL中使用CURSOR_NAME%FOUND和CURSOR_NAME%NOTFOUND变量是相似的&lt;br /&gt;。@@FETCH_STATUS函数在每一次成功的数据抽取以后被设定为0。如果数据抽取试图读取一个超过游标末尾的数据，则返回一个为-1的值。&lt;br /&gt;如果请求的行在游标打开以后从表上被删除了，@@FETCH_STATUS函数就返回一个为-2的值。只有游标是用SCROLL选项定义的情况下，&lt;br /&gt;才会返回-2值。在每一次数据抽取之后都必须检查该变量，以确保数据的有效性。&lt;br /&gt;&lt;br /&gt;SQL Server不支持Oracle的游标FOR循环语法。&lt;br /&gt;&lt;br /&gt;CURRENT OF子句&lt;br /&gt;&lt;br /&gt;更新和删除的CURRENT OF子句语法和函数在PL/SQL和Transact-SQL中是一样的。在给定游标中，在当前行上执行定位的UPDATE和DELETE。&lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;关闭一个游标&lt;br /&gt;&lt;br /&gt;Transact-SQL的CLOSE CURSOR语句关闭游标，但是保留数据结构以备重新打开。PL/SQL 的CLOSE CURSOR语句关闭并且释放所有的数据结构。&lt;br /&gt;&lt;br /&gt;Transact-SQL需要用DEALLOCATE CURSOR语句来清除游标数据结构。DEALLOCATE CURSOR语句同CLOSE CURSOR是不一样的，&lt;br /&gt;后者保留数据结构以备重新打开。DEALLOCATE CURSOR释放所有与游标相关的数据结构并且清除游标的定义。&lt;br /&gt;&lt;br /&gt;　&lt;br /&gt;&lt;br /&gt;游标示例&lt;br /&gt;&lt;br /&gt;下面的例子显示了在PL/SQL和Transact-SQL等价的游标语句。&lt;br /&gt;&lt;br /&gt;Oracle Microsoft SQL　 &lt;br /&gt;-----------------------------------------------------------------------------------------------------------&lt;br /&gt;DECLARE&lt;br /&gt;VSSN CHAR(9);&lt;br /&gt;VFNAME VARCHAR(12);&lt;br /&gt;VLNAME VARCHAR(20);&lt;br /&gt;-----------------------------------------------------------------------------------------------------------&lt;br /&gt;DECLARE&lt;br /&gt;@VSSN CHAR(9),&lt;br /&gt;@VFNAME VARCHAR(12),&lt;br /&gt;@VLNAME VARCHAR(20) &lt;br /&gt;CURSOR CUR1 &lt;br /&gt;IS&lt;br /&gt;SELECT SSN, FNAME, LNAME&lt;br /&gt;FROM STUDENT ORDER BY LNAME;&lt;br /&gt;&lt;br /&gt;BEGIN&lt;br /&gt;　　OPEN CUR1;&lt;br /&gt;　　FETCH CUR1 INTO VSSN, 　　　　VFNAME, VLNAME;&lt;br /&gt;　　WHILE (CUR1%FOUND) LOOP&lt;br /&gt;　　FETCH CUR1 INTO VSSN, 　　　　VFNAME, VLNAME;&lt;br /&gt;END LOOP;&lt;br /&gt;CLOSE CUR1;&lt;br /&gt;END; &lt;br /&gt;-----------------------------------------------------------------------------------------------------------&lt;br /&gt;DECLARE curl CURSOR FOR&lt;br /&gt;　　SELECT SSN, FNAME, LNAME&lt;br /&gt;　　FROM STUDENT ORDER BY SSN&lt;br /&gt;OPEN CUR1&lt;br /&gt;FETCH NEXT FROM CUR1&lt;br /&gt;　　INTO @VSSN, @VFNAME, @VLNAME&lt;br /&gt;WHILE (@@FETCH_STATUS &amp;lt;&amp;gt; -1)&lt;br /&gt;　　BEGIN&lt;br /&gt;　　FETCH NEXT FROM CUR1 INTO 　　　　　　@VSSN, @VFNAME, @VLNAME&lt;br /&gt;　　END&lt;br /&gt;CLOSE CUR1&lt;br /&gt;DEALLOCATE CUR1 &lt;/p&gt;</description><category>『Oralce』</category><pubDate>Wed, 04 Jul 2007 19:51:48 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/Oracle/200707/63.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-07-04T11:51:48Z</dc:date><fs:srclink>http://blog.mobilelook.cn/Oracle/200707/63.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/12486185/1503640</fs:itemid></item><item><title>Oracle使用SQL*PLUS,构建完美excel或html输出</title><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/12486186/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=62</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=62&amp;key=4892e3ac</trackback:ping><description>通过SQL*PLUS我们可以构建友好的输出，满足多样化用户需求。&lt;br /&gt;本例通过简单示例，介绍通过sql*plus输出xls，html两种格式文件.&lt;br /&gt;首先创建两个脚本:&lt;br /&gt;1.main.sql&lt;br /&gt;用以设置环境，调用具体功能脚本&lt;br /&gt;2.功能脚本-get_tables.sql&lt;br /&gt;为实现具体功能之脚本&lt;br /&gt;&lt;br /&gt;示例如下:&lt;br /&gt;1.main.sql脚本:&lt;br /&gt;[oracle@jumper utl_file]$ more main.sql&lt;br /&gt;set linesize 200 &lt;br /&gt;set term off verify off feedback off pagesize 999 &lt;br /&gt;set markup html on entmap ON spool on preformat off&lt;br /&gt;spool tables.xls&lt;br /&gt;@get_tables.sql&lt;br /&gt;spool off&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;2.get_tables.sql脚本:&lt;br /&gt;[oracle@jumper utl_file]$ more get_tables.sql &lt;br /&gt;select owner,table_name,tablespace_name,blocks,last_analyzed&lt;br /&gt;from all_tables order by 1,2;&lt;br /&gt;&lt;br /&gt;3.执行并获得输出:&lt;br /&gt;&lt;p&gt;[oracle@jumper utl_file]$ sqlplus &amp;quot;/ as sysdba&amp;quot; @main&lt;br /&gt;&lt;br /&gt;SQL*Plus: Release 9.2.0.4.0 - Production on Mon Apr 25 10:30:11 2005&lt;br /&gt;&lt;br /&gt;Copyright (c) 1982, 2002, Oracle Corporation.&amp;nbsp; All rights reserved.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Connected to:&lt;br /&gt;Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production&lt;br /&gt;With the Partitioning option&lt;br /&gt;JServer Release 9.2.0.4.0 - Production&lt;br /&gt;&lt;br /&gt;Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production&lt;br /&gt;With the Partitioning option&lt;br /&gt;JServer Release 9.2.0.4.0 - Production&lt;br /&gt;[oracle@jumper utl_file]$ ls -l tables.xls &lt;br /&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 oracle&amp;nbsp;&amp;nbsp; dba&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 69539 Apr 25 10:30 tables.xls&lt;br /&gt;[oracle@jumper utl_file]$ &lt;br /&gt;&lt;br /&gt;此处输出为xls文件，通过下图我们可以看到输出效果:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://blog.mobilelook.cn/upload/009.jpg&quot; rel=&quot;gb_imageset[nice_pics]&quot; title=&quot;&quot;&gt;&lt;img onload=&quot;ResizeImage(this,520)&quot; src=&quot;http://blog.mobilelook.cn/upload/009.jpg&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;div id=&quot;a000271more&quot;&gt;&lt;div id=&quot;more&quot;&gt;把main.sql脚本中的，spool tables.xls更改为spool tables.htm,我们可以获得htm格式输出，效果如下图:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;a href=&quot;http://blog.mobilelook.cn/upload/010.jpg&quot; rel=&quot;gb_imageset[nice_pics]&quot; title=&quot;&quot;&gt;&lt;img onload=&quot;ResizeImage(this,520)&quot; src=&quot;http://blog.mobilelook.cn/upload/010.jpg&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/a&gt;</description><category>『Oralce』</category><pubDate>Wed, 04 Jul 2007 19:37:55 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/Oracle/200707/62.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-07-04T11:37:55Z</dc:date><fs:srclink>http://blog.mobilelook.cn/Oracle/200707/62.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/12486186/1503640</fs:itemid></item><item><title>多线程实现UI异步调用例子(VS 2005)</title><pubDate>Sat, 30 Jun 2007 16:23:27 +0800</pubDate><link>http://item.feedsky.com/~feedsky/bosswin/~1482727/12486187/1503640/1/item.html</link><wfw:comment>http://blog.mobilelook.cn/</wfw:comment><wfw:commentRss>http://blog.mobilelook.cn/sydication.asp?cmt=61</wfw:commentRss><trackback:ping>http://blog.mobilelook.cn/cmd.asp?act=tb&amp;id=61&amp;key=605370ba</trackback:ping><description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这个例子是以前自己用VS 2005写的多线程实现UI异步调用，实现多线程向一个listBox控件添加数据的简单示例（拿出来献丑了，呵呵）。&lt;br /&gt;&lt;div id=&quot;attach_6&quot; onmouseover=&quot;showMenu(this.id, 0, 1)&quot; style=&quot;DISPLAY: none; LEFT: 207px; POSITION: absolute; TOP: 342px&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://images.5d6d.com/orig/default/attachimg.gif&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;t_msgfont&quot; id=&quot;message66&quot;&gt;&lt;div class=&quot;t_attach&quot; id=&quot;attach_6_menu&quot; title=&quot;menu&quot; style=&quot;DISPLAY: none&quot;&gt;&lt;div class=&quot;right smalltxt&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;a href=&quot;http://blog.mobilelook.cn/upload/20070408_eab6cf124be4bb77595dfqwXqcxhLw1H.jpg&quot; rel=&quot;gb_imageset[nice_pics]&quot; title=&quot;&quot;&gt;&lt;img onload=&quot;ResizeImage(this,520)&quot; src=&quot;http://blog.mobilelook.cn/upload/20070408_eab6cf124be4bb77595dfqwXqcxhLw1H.jpg&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/a&gt;&lt;br /&gt;一、申明一个委托类型：&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;delegate void myMessage(string message);&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;二、具体实现方法：&lt;br /&gt;&lt;div class=&quot;msgbody&quot;&gt;&lt;div class=&quot;msgheader&quot;&gt;&lt;div class=&quot;right&quot;&gt;&lt;/div&gt;CODE:&lt;/div&gt;&lt;div class=&quot;msgborder&quot; id=&quot;code0&quot;&gt;private void ListAdd(string msg)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;lock (this.listBox1)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; this.listBox1.Items.Add(msg);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; this.listBox1.SetSelected(listBox1.Items.Count - 1, true);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;private void ListAdds(string msg)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Invoke(new myMessage(ListAdd), msg);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;三、自定义线程对象：&lt;br /&gt;&lt;div class=&quot;msgbody&quot;&gt;&lt;div class=&quot;msgheader&quot;&gt;&lt;div class=&quot;right&quot;&gt;&lt;/div&gt;CODE:&lt;/div&gt;&lt;div class=&quot;msgborder&quot; id=&quot;code1&quot;&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Threading;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;using System.Diagnostics;&lt;br /&gt;&lt;br /&gt;namespace Thread_delegate&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; class Worker&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;private string _num;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;public Thread myThread;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;public myMessage message;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;public Searcher(string num)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;_num = num;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;myThread = new Thread(DoWork);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;public void Start()&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; myThread.Start();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;private void DoWork()&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;while(true){&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; message(&amp;quot;线程&amp;quot; + _Dir);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; Thread.Sleep(1000);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;四、调用线程对象：&lt;br /&gt;&lt;div class=&quot;msgbody&quot;&gt;&lt;div class=&quot;msgheader&quot;&gt;&lt;div class=&quot;right&quot;&gt;&lt;/div&gt;CODE:&lt;/div&gt;&lt;div class=&quot;msgborder&quot; id=&quot;code2&quot;&gt;private Worker[] myWorker = new Worker[5];&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;private int num=3;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;public Form1()&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;InitializeComponent();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; num; i++)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; myWorker[i] = new Worker(i.ToString());&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; myWorker[i].message += new myMessage(ListAdds);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;DEMO下载：&lt;a href=&quot;http://blog.mobilelook.cn/upload/多线程与委托.rar&quot; target=&quot;_blank&quot;&gt;多线程与委托.rar&lt;/a&gt;&lt;/div&gt;</description><category>『.Net』</category><pubDate>Sat, 30 Jun 2007 16:23:27 +0800</pubDate><author>a@b.com (bosswin)</author><guid isPermaLink="false">http://blog.mobilelook.cn/DotNet/200706/61.html</guid><dc:creator>a@b.com (bosswin)</dc:creator><dc:date>2007-06-30T08:23:27Z</dc:date><fs:srclink>http://blog.mobilelook.cn/DotNet/200706/61.html</fs:srclink><fs:srcfeed>http://blog.mobilelook.cn/rss.xml</fs:srcfeed><fs:itemid>feedsky/bosswin/~1482727/12486187/1503640</fs:itemid></item></channel></rss>
