﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-java之路-文章分类-初学.net</title><link>http://www.blogjava.net/ap0406708/category/40219.html</link><description>问鼎java之颠</description><language>zh-cn</language><lastBuildDate>Sun, 13 Sep 2009 13:19:53 GMT</lastBuildDate><pubDate>Sun, 13 Sep 2009 13:19:53 GMT</pubDate><ttl>60</ttl><item><title>无法显示 XML 页。   (2009-03-19 13:03  163.com)</title><link>http://www.blogjava.net/ap0406708/articles/293956.html</link><dc:creator>肇哥</dc:creator><author>肇哥</author><pubDate>Fri, 04 Sep 2009 16:09:00 GMT</pubDate><guid>http://www.blogjava.net/ap0406708/articles/293956.html</guid><wfw:comment>http://www.blogjava.net/ap0406708/comments/293956.html</wfw:comment><comments>http://www.blogjava.net/ap0406708/articles/293956.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ap0406708/comments/commentRss/293956.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ap0406708/services/trackbacks/293956.html</trackback:ping><description><![CDATA[无法显示 XML 页。
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-indent: 2em">使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新</a>按钮，或以后重试。 </p>
<hr />
<p>&nbsp;</p>
<p style="text-indent: 2em">名称以无效字符开头。处理资源 'http://localhost/bbs/Index.aspx' 时出错。第 1 行，位置: 2 </p>
<p style="text-indent: 2em">&lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Index.aspx.cs" Inherits="Index" %&gt;-^</p>
<p style="text-indent: 2em">由于asp.net的版本不正确，或者vs.net先于iis之前安装配置，都会发生各种各样的问题.</p>
<p style="text-indent: 2em">解决办法也很简单，就是重新注册一下iis：从 开始-&gt;程序-&gt;Microsoft Visual Studio 2005-&gt;Visual Studio Tools中打开Visual Studio 2005 Command Prompt，输入命令：aspnet_regiis -i，这样就重新注册.net，不到一分钟后完毕：</p>
<p style="text-indent: 2em">Start installing ASP.NET (2.0.50727).</p>
<p style="text-indent: 2em">..................</p>
<p style="text-indent: 2em">Finished installing ASP.NET (2.0.50727).</p>
<img src ="http://www.blogjava.net/ap0406708/aggbug/293956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ap0406708/" target="_blank">肇哥</a> 2009-09-05 00:09 <a href="http://www.blogjava.net/ap0406708/articles/293956.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用户 'sa' 登录失败。    (2009-03-19 13:07  163.com)</title><link>http://www.blogjava.net/ap0406708/articles/293955.html</link><dc:creator>肇哥</dc:creator><author>肇哥</author><pubDate>Fri, 04 Sep 2009 16:08:00 GMT</pubDate><guid>http://www.blogjava.net/ap0406708/articles/293955.html</guid><wfw:comment>http://www.blogjava.net/ap0406708/comments/293955.html</wfw:comment><comments>http://www.blogjava.net/ap0406708/articles/293955.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ap0406708/comments/commentRss/293955.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ap0406708/services/trackbacks/293955.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em">Server Error in '/bbs' Application. </p>
<hr width="100%" color="silver" size="1" />
<p>&nbsp;</p>
<p style="text-indent: 2em"><em>用户 'sa' 登录失败。</em> </p>
<p style="text-indent: 2em">Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. </p>
<p style="text-indent: 2em">Exception Details: System.Data.SqlClient.SqlException: 用户 'sa' 登录失败。</p>
<p style="text-indent: 2em">Source Error: </p>
<p style="text-indent: 2em">
<table width="100%" bgcolor="#ffffcc">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p style="text-indent: 2em">Line 24: PagedDataSource ps = new PagedDataSource();Line 25: sqlconn = myCon.getCon();Line 26: sqlconn.Open();Line 27: string sqlstr = "select a.*,b.* from tb_Card as a join tb_Module as b on a.ModuleID=b.ModuleID";Line 28: SqlDataAdapter MyAdapter = new SqlDataAdapter(sqlstr, sqlconn);</p>
            <p style="text-indent: 2em"></p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p style="text-indent: 2em">Source File: d:\disk\BBS\Index.aspx.cs &nbsp;&nbsp; Line: 26 </p>
<p style="text-indent: 2em">Stack Trace: </p>
<p style="text-indent: 2em">
<table width="100%" bgcolor="#ffffcc">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;</p>
            <p style="text-indent: 2em">[SqlException (0x80131904): 用户 'sa' 登录失败。] System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +735043 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +188 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1838 System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +33 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +628 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +170 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +359 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +28 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +424 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +496 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +82 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +105 System.Data.SqlClient.SqlConnection.Open() +111 Index.dlBind() in d:\disk\BBS\Index.aspx.cs:26 Index.Page_Load(Object sender, EventArgs e) in d:\disk\BBS\Index.aspx.cs:19 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +13 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +45 System.Web.UI.Control.OnLoad(EventArgs e) +98 System.Web.UI.Control.LoadRecursive() +71 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4308</p>
            <p style="text-indent: 2em"></p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"></p>
<hr width="100%" color="silver" size="1" />
<p>&nbsp;</p>
<p style="text-indent: 2em">Version Information:&nbsp;Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42 </p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">解决:SQL2000密码错误</p>
<img src ="http://www.blogjava.net/ap0406708/aggbug/293955.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ap0406708/" target="_blank">肇哥</a> 2009-09-05 00:08 <a href="http://www.blogjava.net/ap0406708/articles/293955.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在B/S里面这个App_Code文件夹做什么用的啊?   (2009-03-19 13:10  163.com)</title><link>http://www.blogjava.net/ap0406708/articles/293954.html</link><dc:creator>肇哥</dc:creator><author>肇哥</author><pubDate>Fri, 04 Sep 2009 16:06:00 GMT</pubDate><guid>http://www.blogjava.net/ap0406708/articles/293954.html</guid><wfw:comment>http://www.blogjava.net/ap0406708/comments/293954.html</wfw:comment><comments>http://www.blogjava.net/ap0406708/articles/293954.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ap0406708/comments/commentRss/293954.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ap0406708/services/trackbacks/293954.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em">App_Code文件夹正好在Web应用程序根目录下，其存储所有应当作为应用程序的一部分动态编译的类文件。这些类文件自 动链接到应用程序，而不需要在页面中添加任何显式指令或声明来创建依赖性。App_Code文件夹中放置的类文件可以包含任何可识别的ASP.NET组件 ——自定义控件、辅助类、build提供程序、业务类、自定义提供程序、HTTP处理程序等。 </p>
<p style="text-indent: 2em">注意 在开发时，对App_Code文件夹的更改会导致整个应用程序重新编译。对于大型项目，这可能不受欢迎，而且很耗时。为此，鼓励大家将代码进行模块化处理到不同的类库中，按逻辑上相关的类集合进行组织。应用程序专用的辅助类大多应当放置在App_Code文件夹中。</ca></p>
<p style="text-indent: 2em">参考资料：<a href="http://blog.csdn.net/squallffx/archive/2007/07/24/1706541.aspx">http://blog.csdn.net/squallffx/archive/2007/07/24/1706541.aspx</a></p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">1.&nbsp; Bin文件夹 </p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">Bin文件夹包含应用程序所需的，用于控件、组件或者需要引用的任何其他代码的可部署程序集。该目录中存在的任何.dll文&nbsp; 件将自动地链接到应用程序。如果在该文件夹中留有不用的或过期的文件，则可能出现&#8220;二义性引用(ambiguous&nbsp; reference)&#8221;异常的风险。换句话说，如果两个不同的程序集定义相同的类(相同的命名空间和名称)，则ASP.NET运行库不能决定应该使用哪一&nbsp; 个程序集，从而抛出一个异常。在开发时，当我们重新命名一个项目或一个程序集的名称时，这是常见的错误。为了避免这种错误，一定不要在该文件夹中保留任何&nbsp; 不必要的程序集，或者至少要从配置文件的&lt;assemblies&gt;节中删除如下代码行：</p>
<p style="text-indent: 2em">&lt;add&nbsp; assembly="*"&nbsp; /&gt;</p>
<p style="text-indent: 2em">在表1.10所列的所有文件夹中，只有Bin可以被ASP.NET&nbsp; 1.x应用程序识别。该文件夹是强制性的。</p>
<p style="text-indent: 2em">2.&nbsp; App_Browser文件夹</p>
<p style="text-indent: 2em">该可选的文件夹包含.browser文件。.browser文件描述浏览器(不管是移动设备浏览器，还是台式机浏览器)的特&nbsp; 征和功能。ASP.NET在安装路径下的Config\Browser文件夹中安装了大量.browser文件，这些文件供所有应用程序共享。我们只是把&nbsp; 当前应用程序特有的浏览器文件放在App_Browser文件夹下。.browser文件的内容即时动态地进行编译，以便向ASP.NET运行库提供最新&nbsp; 的浏览器信息。</p>
<p style="text-indent: 2em">让我们简单谈谈拥有一个自定义的.browser文件可能有帮助的场景。设想应用程序使用了一个在某个浏览器下不能有效呈现的控件。在指定的浏览器中显示宿主页面时，可以编写一个.browser文件，迫使ASP.NET使用一个不同的适配器来生成该控件。</p>
<p style="text-indent: 2em">&lt;browsers&gt;</p>
<p style="text-indent: 2em">&lt;browser&nbsp; id="browserID"&gt;</p>
<p style="text-indent: 2em">&lt;controlAdapters&gt;</p>
<p style="text-indent: 2em">&lt;adapter&nbsp; controlType="Samples.CustomControl"</p>
<p style="text-indent: 2em">adapterType="Samples.Adapters.CustomControlAdapter"&nbsp; /&gt;</p>
<p style="text-indent: 2em">&lt;/controlAdapters&gt;</p>
<p style="text-indent: 2em">&lt;/browser&gt;</p>
<p style="text-indent: 2em">&lt;/browsers&gt;</p>
<p style="text-indent: 2em">假设browserID与ASP.NET识别的标准浏览器之一相匹配，则上文所示的.browser文件指示在指定的浏览器下使用CustomControlAdapter呈现CustomControl。</p>
<p style="text-indent: 2em">3.&nbsp; App_Code文件夹</p>
<p style="text-indent: 2em">App_Code文件夹正好在Web应用程序根目录下，其存储所有应当作为应用程序的一部分动态编译的类文件。这些类文件自&nbsp; 动链接到应用程序，而不需要在页面中添加任何显式指令或声明来创建依赖性。App_Code文件夹中放置的类文件可以包含任何可识别的ASP.NET组件&nbsp; ——自定义控件、辅助类、build提供程序、业务类、自定义提供程序、HTTP处理程序等。</p>
<p style="text-indent: 2em">&nbsp; &nbsp; 注意&nbsp; &nbsp; &nbsp; &nbsp; 在开发时，对App_Code文件夹的更改会导致整个应用程序重新编译。对于大型项目，这可能不受欢迎，而且很耗时。为此，鼓励大家将代码进行模块化处理&nbsp; 到不同的类库中，按逻辑上相关的类集合进行组织。应用程序专用的辅助类大多应当放置在App_Code文件夹中。</p>
<p style="text-indent: 2em">App_Code文件夹中存放的所有类文件应当使用相同的语言。如果类文件使用两种或多种语言编写，则必须创建特定语言的子目录，以包含用每种语言编写的类。一旦根据语言组织这些类文件，就要在web.config文件中为每个子目录添加一个设置：</p>
<p style="text-indent: 2em">&lt;compilation&gt;</p>
<p style="text-indent: 2em">&lt;codeSubDirectories&gt;</p>
<p style="text-indent: 2em">&lt;add&nbsp; directoryName="VBFolder"&nbsp; /&gt;</p>
<p style="text-indent: 2em">&lt;/codeSubDirectories&gt;</p>
<p style="text-indent: 2em">&lt;/compilation&gt;</p>
<p style="text-indent: 2em">重要的是，特定语言的子目录应在web.config文件中注册，否则，不管它们属于哪个文件夹，App_Code文件夹下&nbsp; 的所有文件将被编译成一个单独的程序集。上述配置脚本描述了这么一种情况，即所有的C#文件都放在App_Code文件夹的根目录下，而把几个&nbsp; Visual&nbsp; Basic&nbsp; .NET类文件移入VBFolder目录中。如果&lt;codeSubDirectories&gt;节中提到的目录不存在，则会收到一个编译错误提&nbsp; 示。</p>
<p style="text-indent: 2em">App_Code根文件夹中的文件被编译成App_Code_xxx.dll程序集，其中xxx是随机生成的字符序列。一个&nbsp; 给定子目录中的文件将被编译成一个名为App_SubCode_xxx_yyy.dll的动态创建的程序集，其中xxx指示子目录的名称，而yyy是一个&nbsp; 随机字符序列。只有在应用程序根目录中的web.config文件中进行了设置，&lt;codeSubDirectories&gt;节才有效。</p>
<p style="text-indent: 2em">在App_Code目录或任何其他子目录中放置一个assemblyinfo.cs文件，可以创建一个强命名的程序集。显然，如果该文件夹包含Visual&nbsp; Basic&nbsp; .NET文件，那么将使用assemblyinfo.vb文件。程序集配置文件可以引用一个.snk文件来保存强名称的密钥。</p>
<p style="text-indent: 2em">&nbsp; 注意&nbsp; &nbsp; &nbsp; &nbsp; 给一个程序集设置一个强名称，首先必须获得一个公开/私有密钥对。通过使用强名称(Strong&nbsp; Name)工具(sn.exe)，可以获得这样一个密钥对。强名称工具是我们可以在.NET&nbsp; Framework的安装路径中发现的SDK&nbsp; binary之一。密钥对文件通常有一个.snk扩展名。可以将该文件保存到一个应用程序文件夹中，并在assemblyinfo.cs文件中引用它，如下所示：</p>
<p style="text-indent: 2em">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [assembly:&nbsp; AssemblyKeyFileAttribute(@"yourKeyPair.snk")]</p>
<p style="text-indent: 2em">注意，Visual&nbsp; Basic&nbsp; .NET是在包含Visual&nbsp; Studio&nbsp; Solution的目录中寻找密钥文件，而C#编译器则在包含该binary的目录中寻找密钥文件。据此可知，用此属性调整我们使用的路径，或者把密钥文件放在合适的文件夹中。</p>
<p style="text-indent: 2em">在随后发生的任何重新生成中，程序集的名称将发生变化。同时，老的AppDomain请求一结束，就删除老的程序集。</p>
<p style="text-indent: 2em">App_Code文件夹并非只能包含类文件。特别是，它可以包含并能自动地处理代表数据架构的XSD文件。把一个XSD文件&nbsp; 添加到该文件夹中时，编译器将把它解析成一个有类型的DataSet类，并将它添加到应用程序作用域中。在ASP.NET&nbsp; 1.x中，这一工作由Visual&nbsp; Studio&nbsp; .NET向导，使用一个命令行实用程序(xsd.exe)完成的。</p>
<p style="text-indent: 2em">&nbsp; &nbsp; 注意&nbsp; &nbsp; &nbsp; &nbsp; 使用web.config文件注册一个组件(例如，一个自定义的服务器控件或一个自定义的HTTP处理程序)时，通常要求指定包含该代码的程序集名称。如&nbsp; 果该组件定义在App_Code文件夹中，则应该用什么名称来指示程序集？在这种情况下，只是忽略程序集信息，并规定完整的类名即可。如果没有规定任何程&nbsp; 序集，则ASP.NET运行库将试图从任何已装载的程序集中装入该类，包括为App_Code文件夹动态创建的程序集。</p>
<p style="text-indent: 2em">4.&nbsp; App_Data文件夹</p>
<p style="text-indent: 2em">App_Data文件夹应该包含应用程序的本地数据存储。它通常以文件(诸如Microsoft&nbsp; Access或Microsoft&nbsp; SQL&nbsp; Server&nbsp; Express数据库、XML文件、文本文件以及应用程序支持的任何其他文件)形式包含数据存储。该文件夹内容不由ASP.NET处理。该文件夹是ASP.NET提供程序存储自身数据的默认位置。</p>
<p style="text-indent: 2em">&nbsp; 注意&nbsp; &nbsp; &nbsp; &nbsp; 默认ASP.NET帐户被授予对文件夹的完全访问权限。如果碰巧要改变ASP.NET帐户，一定要确保新帐户被授予对该文件夹的读/写访问权。</p>
<p style="text-indent: 2em">5.&nbsp; App_GlobalResources文件夹</p>
<p style="text-indent: 2em">正如其他应用程序一样，ASP.NET应用程序也可以使用资源，而且通常应该使用资源。资源是隔离应用程序用户界面的可局部&nbsp; 化部分的一种有效方法。一般而言，资源是与程序相关的不可执行的文本。典型的资源有图像、图标、文本和附属文件，但是任何可序列化的对象也可以被看作资&nbsp; 源。应用程序资源存储在应用程序的外部，这样就能在不影响和重新编译应用程序本身的情况下重新编译和替换它们。</p>
<p style="text-indent: 2em">ASP.NET应用程序需要有一个主要程序集来保存应用程序默认的或中性的资源。此外，还要部署许多附属程序集，它们中各自&nbsp; 包含我们需要支持的某种文化的本地化资源。在ASP.NET&nbsp; 1.x中，编译一个程序集内的资源有点麻烦。需要手动地将基于XML的资源文件(那些带.res扩展名的资源)编译成.resources二进制文件。这&nbsp; 些文件既可以嵌入到一个.NET可执行文件中，也可以编译成附属程序集。使用资源文件生成器实用程序resgen.exe，将文本和基于XML的资源文件&nbsp; 转变为.resource文件。资源文件名称遵循baseName.cultureName.resource命名约定，其中baseName通常是应用&nbsp; 程序的名称：</p>
<p style="text-indent: 2em">resgen.exe&nbsp; ProAspNet20.resx&nbsp; ProAspNet20.it.resources</p>
<p style="text-indent: 2em">创建.resource文件以后，应当把它嵌入到一个程序集中，甚至可以作为一个资源容器来使用。要把一个资源文件嵌入到一个附属程序集中，可以使用程序集连接器工具(al.exe)。在命令行上，指出程序集所使用的文化(如下面示例中的it，它代表意大利)和名称。</p>
<p style="text-indent: 2em">al&nbsp; /out:ProAspNet20.resources.dll&nbsp; /c:it&nbsp; /embed:ProAspNet20.it.resources</p>
<p style="text-indent: 2em">在编译附属程序集之后，它们将有相同的名称。将它们部署到不同的子目录中，分别按文化命名。</p>
<p style="text-indent: 2em">幸运的是，对于ASP.NET&nbsp; 2.0，附属程序集的时代已经一去不复返了。更准确地说，附属程序集仍然存在，但是由于App_GlobalResources保留文件夹，对开发人员来说它们已经成为过去的事情。</p>
<p style="text-indent: 2em">该文件夹中的任何定位的.resx文件自动地被编译成附属程序&nbsp; 集。.resx文件的名称包含文化信息，以帮助ASP.NET运行库环境的程序集生成。如下文件，resources.resx,&nbsp; resources.it.resx,&nbsp; resources.fr.resx，生成中性程序集以及适合于意大利(Italian)和法国(French)文化的附属程序集。如果没有要求特定文&nbsp; 化，则中性程序集是默认的文化资源。</p>
<p style="text-indent: 2em">App_GlobalResources文件夹中的资源文件是应用程序的全局资源，因而可以从任何页面中引用它。和ASP.NET&nbsp; 1.x相比资源读取结果也极大地简化了：</p>
<p style="text-indent: 2em">&lt;asp:Label&nbsp; Runat="server"&nbsp; Text="&lt;%$&nbsp; Resources:ResxFile,&nbsp; MyResName&nbsp; %&gt;"&nbsp; /&gt;</p>
<p style="text-indent: 2em">可以使用最新的称为Resources的$-表达式以声明的方式绑定全局资源(第5章将详细介绍$-表达式)。该表达式包括两个参数：.resx资源文件的名称(没有扩展名)，以及要检索的资源的名称。以编程的方式访问资源，请使用如下代码：</p>
<p style="text-indent: 2em">HttpContext.GetGlobalResourceObject(resxFile,&nbsp; MyResName)</p>
<p style="text-indent: 2em">这两个参数都是字符串，并且与$-表达式中的参数具有相同的作用。此外，$-表达式Resources的实现在内部使用GetGlobalResourceObject。</p>
<p style="text-indent: 2em">6.&nbsp; App_LocalResources文件夹</p>
<p style="text-indent: 2em">App_LocalResources文件夹位于包含一些ASP.NET页面的文件夹下的一个子目录。该文件夹可以使用位于&nbsp; 目录结构中高一级目录中的页面命名的.resx文件进行填充。假定父文件夹包含test.aspx，则可以在App_LocalResources文件夹&nbsp; 中找到一些可用的资源文件如下：test.aspx.resx、test.aspx.it.resx和test.aspx.fr.resx。显然，上述文&nbsp; 件中存储的资源仅对test.aspx页面有影响，因而只能在链接的页面中看见它们(可以使用它们)。</p>
<p style="text-indent: 2em">如何访问一个页面特有的资源呢？对于编程访问，可使用如下代码：</p>
<p style="text-indent: 2em">HttpContext.GetLocalResourceObject("/ProAspNet20/ResPage.aspx",</p>
<p style="text-indent: 2em">"PageResource1.Title")</p>
<p style="text-indent: 2em">第1个参数指出页面虚拟路径；第2个参数是资源名称。对于声明式访问，使用meta:ResourceKey属性。例如，</p>
<p style="text-indent: 2em">&lt;asp:Button&nbsp; Runat="server"&nbsp; meta:resourcekey="ButtonResource1"&nbsp; /&gt;</p>
<p style="text-indent: 2em">该声明将一个惟一的资源键与特定按钮实例关联。局部文件.resx包含prefix.name形式的条目，其中prefix&nbsp; 是资源键，而name是绑定控件上的属性名。为了赋予按钮一个本地化标题(Text属性)，只要在资源文件中创建一个&nbsp; ButtonResource1.Text条目即可。</p>
<p style="text-indent: 2em">局部和全局资源文件夹中存在的资源文件都被编译，以创建附属程序集的类。最后的结果是开发人员创建.resx文件，并测试该页面。而ASP.NET编译机制会完成其余工作。</p>
<p style="text-indent: 2em">7.&nbsp; App_Themes文件夹</p>
<p style="text-indent: 2em">App_Themes文件夹为ASP.NET控件定义主题。主题包含在App_Themes文件夹下的一个文件夹。根据定义，一个主题是一组带有样式信息的文件。主题文件夹中的文件内容被编译，以生成一个类，而该类被页面调用以编程的方式设置主题化控件的样式。</p>
<p style="text-indent: 2em">App_Themes文件夹列出应用程序的本地主题。&nbsp; 应用程序还可以继承如下文件夹中定义的全局主题：</p>
<p style="text-indent: 2em">%WINDOWS%\Microsoft.NET\Framework\[version]\ASP.NETClientFiles\Themes</p>
<p style="text-indent: 2em">从编译的角度看，全局主题和局部主题没有区别。如果一个给定名称的主题，既存在应用程序的本地主题，又存在服务器机器的全局主题，则本地主题优先适用。</p>
<p style="text-indent: 2em">8.&nbsp; App_WebReferences文件夹</p>
<p style="text-indent: 2em">在Visual&nbsp; Studio&nbsp; .NET&nbsp; 2003中，一个需要访问Web服务的ASP.NET应用程序，将通过&#8220;添加Web引用&#8221;对话框获得相应的.wsdl文件。Web服务的WSDL(Web&nbsp; Service&nbsp; Description&nbsp; Language)文档，对于从页面使用Web服务是不够的。ASP.NET页面最终是一个托管类，并且需要与另一个托管类通信。因此，Web服务被一个&nbsp; 代理类所包装。该代理类是由Visual&nbsp; Studio使用命令行工具wsdl.exe的服务创建的。该代理类尽量包含与Web服务商的Web方法一样多的方法，并且它结合了Web服务的公共接口&nbsp; 定义的任何自定义的数据类型。</p>
<p style="text-indent: 2em">这个操作不需要开发人员付出很大的代价。然而，开发人员显然要依赖于Visual&nbsp; Studio来生成代理类。如果能够直接把.wsdl文件放在应用程序的目录树的某个地方，并让ASP.NET处理其余的任务，这样不是更容易、更简单&nbsp; 吗？这正好是App_WebReferences文件夹要做的事情。</p>
<p style="text-indent: 2em">它识别那些用来描述所绑定的Web服务的.wsdl文件，并生成运行时代理类，以便ASP.NET页面能够以类型安全的方式&nbsp; 放置对Web服务的调用。App_WebReferences文件夹可以包含子文件夹。子文件夹的名称驱动最后所得到的代理类的命名空间，而WSDL文件&nbsp; 定义类名。例如，samples.wsdl文件和ProsAspNet20子文件夹将创建一个称为ProAspNet20.Samples的代理类。该动&nbsp; 态创建的程序集称为App_WebReferences.xxx.dll，其中xxx是一个随机的字符序列。</p>
<p style="text-indent: 2em">文件夹名称</p>
<p style="text-indent: 2em">&nbsp; 文件类型</p>
<p style="text-indent: 2em">&nbsp; 注&nbsp; &nbsp; &nbsp; &nbsp; 释</p>
<p style="text-indent: 2em">&nbsp; </p>
<p style="text-indent: 2em">Bin</p>
<p style="text-indent: 2em">&nbsp; .dll</p>
<p style="text-indent: 2em">&nbsp; 包含应用程序所需的任何预生成的程序集</p>
<p style="text-indent: 2em">&nbsp; </p>
<p style="text-indent: 2em">App_Browsers</p>
<p style="text-indent: 2em">&nbsp; .browser</p>
<p style="text-indent: 2em">&nbsp; 包含应用程序特有的浏览器定义文件，ASP.NET用它来识别各浏览器及确定它们的功能</p>
<p style="text-indent: 2em">&nbsp; </p>
<p style="text-indent: 2em">App_Code</p>
<p style="text-indent: 2em">&nbsp; .cs、.vb、.xsd、自定义的文件类型</p>
<p style="text-indent: 2em">&nbsp; 包含作为应用程序的一部分编译的类的源文件。当页面被请求时，ASP.NET编译该文件夹中的代码。该文件夹中的代码在应用程序中自动地被引用</p>
<p style="text-indent: 2em">&nbsp; </p>
<p style="text-indent: 2em">App_Data</p>
<p style="text-indent: 2em">&nbsp; .mdb、.mdf、.xml</p>
<p style="text-indent: 2em">&nbsp; 包含Microsoft&nbsp; Office&nbsp; Access和SQL&nbsp; Express文件以及XML文件或其他数据存储</p>
<p style="text-indent: 2em">&nbsp; </p>
<p style="text-indent: 2em">App_GlobalResources</p>
<p style="text-indent: 2em">&nbsp; .resx</p>
<p style="text-indent: 2em">&nbsp; 包含在本地化应用程序中以编程方式使用的资源文件</p>
<p style="text-indent: 2em">&nbsp; </p>
<p style="text-indent: 2em">App_LocalResources</p>
<p style="text-indent: 2em">&nbsp; .resx</p>
<p style="text-indent: 2em">&nbsp; 包含页面范围的资源文件</p>
<p style="text-indent: 2em">&nbsp; </p>
<p style="text-indent: 2em">App_Themes</p>
<p style="text-indent: 2em">&nbsp; .skin、.CSS、.xsl、附属文件</p>
<p style="text-indent: 2em">&nbsp; 包含一组定义ASP.NET页面和控件外观的文件</p>
<p style="text-indent: 2em">&nbsp; </p>
<p style="text-indent: 2em">App_WebReferences</p>
<p style="text-indent: 2em">&nbsp; .wsdl</p>
<p style="text-indent: 2em">&nbsp; 包含用以生成代理类的WSDL文件，以及与在应用程序中使用Web服务有关的其他文件</p>
<img src ="http://www.blogjava.net/ap0406708/aggbug/293954.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ap0406708/" target="_blank">肇哥</a> 2009-09-05 00:06 <a href="http://www.blogjava.net/ap0406708/articles/293954.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Net转义字符 &amp;amp; .net中如何去让‘\’不转义   (发表于 @ 2008年11月12日 15:20:00  163.com)</title><link>http://www.blogjava.net/ap0406708/articles/293953.html</link><dc:creator>肇哥</dc:creator><author>肇哥</author><pubDate>Fri, 04 Sep 2009 16:05:00 GMT</pubDate><guid>http://www.blogjava.net/ap0406708/articles/293953.html</guid><wfw:comment>http://www.blogjava.net/ap0406708/comments/293953.html</wfw:comment><comments>http://www.blogjava.net/ap0406708/articles/293953.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ap0406708/comments/commentRss/293953.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ap0406708/services/trackbacks/293953.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em">C# </p>
<p style="text-indent: 2em">转义符&nbsp;&nbsp;&nbsp;&nbsp; 字符名</p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">\'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 单引号</p>
<p style="text-indent: 2em">\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 双引号</p>
<p style="text-indent: 2em">\\&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 反斜杠</p>
<p style="text-indent: 2em">\0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;空字符</p>
<p style="text-indent: 2em">\a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;感叹号</p>
<p style="text-indent: 2em">\b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;退格</p>
<p style="text-indent: 2em">\f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 换页</p>
<p style="text-indent: 2em">\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;新行</p>
<p style="text-indent: 2em">\r&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 回车</p>
<p style="text-indent: 2em">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;水平 tab</p>
<p style="text-indent: 2em">\v&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;垂直tab</p>
<p style="text-indent: 2em">&nbsp;\\&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \</p>
<p style="text-indent: 2em">&nbsp;\|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |</p>
<p style="text-indent: 2em">&nbsp;\.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .</p>
<p style="text-indent: 2em">\-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-</p>
<p style="text-indent: 2em">&nbsp;\^&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^</p>
<p style="text-indent: 2em">&nbsp;\?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?</p>
<p style="text-indent: 2em">&nbsp;\*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</p>
<p style="text-indent: 2em">&nbsp;\+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+</p>
<p style="text-indent: 2em">&nbsp;\{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</p>
<p style="text-indent: 2em">&nbsp;\}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p style="text-indent: 2em">&nbsp;\(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(</p>
<p style="text-indent: 2em">&nbsp;\)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</p>
<p style="text-indent: 2em">&nbsp;\{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</p>
<p style="text-indent: 2em">&nbsp;\}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p style="text-indent: 2em">&nbsp;\[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [</p>
<p style="text-indent: 2em">&nbsp;\]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]</p>
<p style="text-indent: 2em">protected void Page_Load(object sender, EventArgs e) </p>
<p style="text-indent: 2em">&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; </p>
<p style="text-indent: 2em">&nbsp; &nbsp; &nbsp; &nbsp; DbOperate dbo = new DbOperate(); </p>
<p style="text-indent: 2em">&nbsp; &nbsp; &nbsp; &nbsp; String showinfo = " &lt;ul id='NewCarList' class='idx_car_lst'&gt;"; </p>
<p style="text-indent: 2em">&nbsp; &nbsp; &nbsp; &nbsp; SqlDataReader dr =&nbsp; dbo.ShowCar("select * from photo"); </p>
<p style="text-indent: 2em">&nbsp; &nbsp; &nbsp; &nbsp; int a = 1; </p>
<p style="text-indent: 2em">&nbsp; &nbsp; &nbsp; &nbsp; if (dr.Read()) { </p>
<p style="text-indent: 2em">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; showinfo+=" &lt;li&gt; &lt;a href='#'&gt; &lt;img alt='ss' src='uploadfiles\ProductImages"+dr.GetString(3)+"'/&gt;标志206 &lt;/a&gt; &lt;/li&gt;"; </p>
<p style="text-indent: 2em">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ++a; </p>
<p style="text-indent: 2em">&nbsp; &nbsp; &nbsp; &nbsp; } </p>
<p style="text-indent: 2em">&nbsp; &nbsp; &nbsp; &nbsp; this.showdb.InnerHtml = showinfo + " &lt;/ul&gt;"+a; </p>
<p style="text-indent: 2em">&nbsp; &nbsp; &nbsp; &nbsp; </p>
<p style="text-indent: 2em">&nbsp; &nbsp; } </p>
<p style="text-indent: 2em">看红色字，如何让&#8216;\&#8217;去掉转义作用？ </p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">1:\\ </p>
<p style="text-indent: 2em">2:/ </p>
<p style="text-indent: 2em">3:@"\"&nbsp; </p>
<p style="text-indent: 2em">说的很全，不错啊！</p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">&nbsp;</p>
<img src ="http://www.blogjava.net/ap0406708/aggbug/293953.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ap0406708/" target="_blank">肇哥</a> 2009-09-05 00:05 <a href="http://www.blogjava.net/ap0406708/articles/293953.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#操作Html元素的实现过程  (发表于 @ 2008年11月13日 17:30:00 163.com)</title><link>http://www.blogjava.net/ap0406708/articles/293952.html</link><dc:creator>肇哥</dc:creator><author>肇哥</author><pubDate>Fri, 04 Sep 2009 16:03:00 GMT</pubDate><guid>http://www.blogjava.net/ap0406708/articles/293952.html</guid><wfw:comment>http://www.blogjava.net/ap0406708/comments/293952.html</wfw:comment><comments>http://www.blogjava.net/ap0406708/articles/293952.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ap0406708/comments/commentRss/293952.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ap0406708/services/trackbacks/293952.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em">&nbsp;js就可以操作HTML元素了,但有时既要操作数据库,又要操作HTML元素(虽然javascript也可操作数据库,但显示C#强大点.)</p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一.在页面上为控件加上ID和 runat="server" 就可以在对应的.cs文件中操作它了.便它不是像js那样可以用这个html元素的全部方法,C#的是用自己的方法,可以完全一般操作,为属性设值,加入一些HTML代码.</p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImgUserControl.ascx文件.</p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p style="text-indent: 2em"></p>
<ol>
    <li>&lt;%@&nbsp;Control&nbsp;Language="C#"&nbsp;AutoEventWireup="true"&nbsp;CodeFile="ImgUserControl.ascx.cs"&nbsp;Inherits="ImgUserControl"&nbsp;%&gt;
    <li>&lt;marquee&nbsp;id="myMar"&nbsp;runat="server"&nbsp;direction=up&nbsp;scrollamount=6&nbsp;scrolldelay=50&nbsp;&nbsp;onmouseout="this.start()"&nbsp;onmouseover="this.stop()"&nbsp;width="177px"&nbsp;style="height:&nbsp;540px"&gt;
    <li>&lt;/marquee&gt;</li>
</ol>
<p>&nbsp;</p>
<p style="text-indent: 2em">ImgUserControl.ascx.cs文件</p>
<p style="text-indent: 2em"></p>
<ol>
    <li>public&nbsp;partial&nbsp;class&nbsp;ImgUserControl&nbsp;:&nbsp;System.Web.UI.UserControl
    <li>{
    <li>&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;Page_Load(object&nbsp;sender,&nbsp;EventArgs&nbsp;e)
    <li>&nbsp;&nbsp;&nbsp;&nbsp;{
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;&lt;=&nbsp;5;&nbsp;i++)
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myMar.InnerHtml&nbsp;+=&nbsp;"&lt;img&nbsp;id='ImgUserControl1_img"&nbsp;+&nbsp;i&nbsp;+&nbsp;"'&nbsp;border='0'&nbsp;src='DefaultImg/企业首页图片"&nbsp;+&nbsp;i&nbsp;+&nbsp;".jpg'&nbsp;style='height:150px;width:177px;border-width:0px;WIDTH:&nbsp;177px;&nbsp;HEIGHT:&nbsp;150px'&nbsp;/&gt;&lt;BR&nbsp;/&gt;";
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
    <li>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;
    <li>}</li>
</ol>
<p>&nbsp;</p>
<p style="text-indent: 2em">参考代码:</p>
<p style="text-indent: 2em">1.</p>
<p style="text-indent: 2em">不用 javascript 如何用C#操作 div 的隐藏与显示</p>
<p style="text-indent: 2em">给div 标签加上runat=server可以让C#来操作如： </p>
<p style="text-indent: 2em">&lt;div id="myDiv" runat="server" &gt; &lt;/div&gt; </p>
<p style="text-indent: 2em">//////////////////////////////////////////////////////////////////////////////////////////</p>
<p style="text-indent: 2em">if (条件) </p>
<p style="text-indent: 2em">{ </p>
<p style="text-indent: 2em">&nbsp; myDiv.Attributes["style"]="display:none"; //隐藏 </p>
<p style="text-indent: 2em">} </p>
<p style="text-indent: 2em">else </p>
<p style="text-indent: 2em">{ </p>
<p style="text-indent: 2em">&nbsp; myDiv.Attributes["style"]="display:block"; //显示 </p>
<p style="text-indent: 2em">}</p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">2.</p>
<p style="text-indent: 2em">HtmlElement的InnerHtml 属性; <a href="http://msdn.microsoft.com/zh-cn/library/system.windows.forms.htmlelement.innertext.aspx">InnerText 属性</a></p>
<p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.windows.forms.htmlelement.innerhtml.aspx">http://msdn.microsoft.com/zh-cn/library/system.windows.forms.htmlelement.innerhtml.aspx</a> </p>
<p style="text-indent: 2em">&nbsp;</p>
<img src ="http://www.blogjava.net/ap0406708/aggbug/293952.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ap0406708/" target="_blank">肇哥</a> 2009-09-05 00:03 <a href="http://www.blogjava.net/ap0406708/articles/293952.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库操作相关的命名空间,类,接口.  (发表于 @ 2008年11月14日 00:43:00   163.com)</title><link>http://www.blogjava.net/ap0406708/articles/293951.html</link><dc:creator>肇哥</dc:creator><author>肇哥</author><pubDate>Fri, 04 Sep 2009 16:02:00 GMT</pubDate><guid>http://www.blogjava.net/ap0406708/articles/293951.html</guid><wfw:comment>http://www.blogjava.net/ap0406708/comments/293951.html</wfw:comment><comments>http://www.blogjava.net/ap0406708/articles/293951.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ap0406708/comments/commentRss/293951.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ap0406708/services/trackbacks/293951.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em">System.Data.SqlClient 命名空间</p>
<p style="text-indent: 2em">System.Data.SqlClient 命名空间是 SQL Server 的 .NET Framework 数据提供程序。 </p>
<p style="text-indent: 2em">SQL Server 的 .NET Framework 数据提供程序描述了一个类集合，这个类集合用于访问托管空间中的 SQL Server 数据库。使用 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqldataadapter(VS.80).aspx">SqlDataAdapter</a> 可以填充驻留在内存中的 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.dataset(VS.80).aspx">DataSet</a>，该数据集可用于查询和更新数据库。
<table cellpadding="0" width="97%" border="1">
    <tbody>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand(VS.80).aspx">SqlCommand</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程。无法继承此类。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlconnection(VS.80).aspx">SqlConnection</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">表示 SQL Server 数据库的一个打开的连接。无法继承此类。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqldatareader(VS.80).aspx">SqlDataReader</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">提供一种从 SQL Server 数据库读取行的只进流的方式。无法继承此类。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqldataadapter(VS.80).aspx">SqlDataAdapter</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。无法继承此类。</p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">SqlCommand 特别提供了以下对 SQL Server 数据库执行命令的方法：</p>
<p style="text-indent: 2em">&nbsp;
<table cellpadding="0" width="97%" border="1">
    <tbody>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand.executereader(VS.80).aspx">ExecuteReader</a> </p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">执行返回行的命令。为了提高性能，ExecuteReader 使用 Transact-SQL sp_executesql 系统存储过程调用命令。因此，如果 ExecuteReader 用于执行命令（例如 Transact-SQL SET 语句），则它可能不会产生预期的效果。 </p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand.executenonquery(VS.80).aspx">ExecuteNonQuery</a> </p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">执行 Transact-SQL INSERT、DELETE、UPDATE 及 SET 语句等命令。 </p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand.executescalar(VS.80).aspx">ExecuteScalar</a> </p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">从数据库中检索单个值（例如一个聚合值）。 </p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand.executexmlreader(VS.80).aspx">ExecuteXmlReader</a> </p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">将 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand.commandtext(VS.80).aspx">CommandText</a> 发送到 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand.connection(VS.80).aspx">Connection</a> 并生成一个 XmlReader 对象。 </p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient(VS.80).aspx">http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient(VS.80).aspx</a></p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">SqlCommand对象在执行命令之前，应该确认SqlConnection对象已打开。SqlCommand对象支持4个方法：</p>
<p style="text-indent: 2em">&#183; ExecuteNonQuery——可执行一个不返回数据的SQL语句。</p>
<p style="text-indent: 2em">&#183; ExecuteDataReader——返回一个可读取数据的对象。</p>
<p style="text-indent: 2em">&#183; ExecuteScalar——通过查询返回一个单独的值，例如一个聚合值。</p>
<p style="text-indent: 2em">&#183; ExecuteXmlReader——返回一个可读取XML格式数据的对象。</p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em"><a href="http://book.csdn.net/bookfiles/166/1001667287.shtml">http://book.csdn.net/bookfiles/166/1001667287.shtml</a></p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">SqlDataAdapter 类 方法
<table cellpadding="0" width="97%" border="1">
    <tbody>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.common.dbdataadapter.fill(VS.80).aspx">Fill</a>&nbsp; </p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">已重载。 填充 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.dataset(VS.80).aspx">DataSet</a> 或 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.datatable(VS.80).aspx">DataTable</a>。 （从 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.common.dbdataadapter(VS.80).aspx">DbDataAdapter</a> 继承。） </p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/kxs7kbfe(VS.80).aspx">DbDataAdapter.Fill (DataSet, Int32, Int32, String) </a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">在 DataSet 的指定范围中添加或刷新行以匹配使用 DataSet 和 DataTable 名称的数据源中的行。 </p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em"><em>dataSet</em> </p>
<p style="text-indent: 2em">要用记录和架构（如果必要）填充的 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.dataset(VS.80).aspx">DataSet</a>。 </p>
<p style="text-indent: 2em"><em>startRecord</em> </p>
<p style="text-indent: 2em">从其开始的从零开始的记录号。 </p>
<p style="text-indent: 2em"><em>maxRecords</em> </p>
<p style="text-indent: 2em">要检索的最大记录数。 </p>
<p style="text-indent: 2em"><em>srcTable</em> </p>
<p style="text-indent: 2em">用于表映射的源表的名称。 </p>
<p style="text-indent: 2em">返回值</p>
<p style="text-indent: 2em">已在 DataSet 中成功添加或刷新的行数。这不包括受不返回行的语句影响的行。</p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">System.Web.UI.WebControls 命名空间</p>
<p style="text-indent: 2em">System.Web.UI.WebControls 命名空间包含一些类，可使用这些类在网页上创建 Web 服务器控件。Web 服务器控件运行在服务器上并且包括按钮和文本框等窗体控件。它们还包括具有特殊用途的控件（如日历）。由于 Web 服务器控件运行在服务器上，因此可以以编程方式控制这些元素。尽管 Web 服务器控件呈现为 HTML，但它们的对象模型不一定反映 HTML 语法。 </p>
<p style="text-indent: 2em">System.Web.UI.WebControls 命名空间包含一些呈现为 HTML 标记的类，如 <a href="http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.textbox(VS.80).aspx">TextBox</a> 控件和 <a href="http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.listbox(VS.80).aspx">ListBox</a> 控件。该命名空间还包含一些不在网页上呈现、但支持数据操作的类，如 <a href="http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.sqldatasource(VS.80).aspx">SqlDataSource</a> 类和 <a href="http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.objectdatasource(VS.80).aspx">ObjectDataSource</a> 类。其他一些控件（如 <a href="http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.gridview(VS.80).aspx">GridView</a> 控件和 <a href="http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.detailsview(VS.80).aspx">DetailsView</a> 控件）支持数据显示和编辑。<a href="http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.webcontrol(VS.80).aspx">WebControl</a> 类用作 System.Web.UI.WebControls 命名空间中许多类的基类。
<table cellpadding="0" width="97%" border="1">
    <tbody>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.gridview(VS.80).aspx">GridView</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">在表中显示数据源的值，其中每列表示一个字段，每行表示一条记录。GridView 控件允许您选择和编辑这些项以及对它们进行排序。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.datalist(VS.80).aspx">DataList</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">显示使用模板的项的数据绑定列表控件。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.pageddatasource.aspx">PagedDataSource</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">封装数据绑定控件（如 <a href="http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.datagrid.aspx">DataGrid</a>、<a href="http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.gridview.aspx">GridView</a>、<a href="http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.detailsview.aspx">DetailsView</a> 和 <a href="http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.formview.aspx">FormView</a>）的与分页相关的属性，以允许该控件执行分页操作。无法继承此类。</p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">System.Data 命名空间</p>
<p style="text-indent: 2em">System.Data 命名空间提供对表示 ADO.NET 结构的类的访问。通过 ADO.NET 可以生成一些组件，用于有效管理多个数据源的数据。 </p>
<p style="text-indent: 2em">在断开连接的情形中（如 Internet），ADO.NET 提供在多层系统中请求、更新和协调数据的工具。ADO.NET 结构也在客户端应用程序（如 ASP.NET 创建的 Windows 窗体或 HTML 页）中实现。</p>
<p style="text-indent: 2em">ADO.NET 结构的中心构件是 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.dataset(VS.80).aspx">DataSet</a> 类。每个 DataSet 都可以包含多个 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.datatable(VS.80).aspx">DataTable</a> 对象，每个 DataTable 都包含来自单个数据源（如 SQL Server）的数据。</p>
<p style="text-indent: 2em">每个 DataTable 都包含一个 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.datacolumncollection(VS.80).aspx">DataColumnCollection</a>（<a href="http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn(VS.80).aspx">DataColumn</a> 对象的集合），DataColumnCollection 决定每个 DataTable 的架构。<a href="http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn.datatype(VS.80).aspx">DataType</a> 属性确定 DataColumn 所包含的数据的类型。使用 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn.readonly(VS.80).aspx">ReadOnly</a> 和 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn.allowdbnull(VS.80).aspx">AllowDBNull</a> 属性可以进一步确保数据完整性。使用 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn..aspx">Expression</a> 属性可以构造计算出的列。</p>
<p style="text-indent: 2em">如果 DataTable 参与同另一个 DataTable 的父/子关系，则通过将 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.datarelation(VS.80).aspx">DataRelation</a> 添加到 DataSet 对象的 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.datarelationcollection(VS.80).aspx">DataRelationCollection</a> 来构造该关系。在添加这样的关系时，将自动创建 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.uniqueconstraint(VS.80).aspx">UniqueConstraint</a> 和 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.foreignkeyconstraint(VS.80).aspx">ForeignKeyConstraint</a>，具体取决于构造函数的参数设置。UniqueConstraint 确保列中包含的值是唯一的。ForeignKeyConstraint 确定当主键值被更改或删除时将对子行或子列执行的操作。</p>
<p style="text-indent: 2em">使用 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient(VS.80).aspx">System.Data.SqlClient</a> 命名空间（用于 SQL Server 的 .NET Framework 数据提供程序）、<a href="http://msdn.microsoft.com/zh-cn/library/system.data.odbc(VS.80).aspx">System.Data.Odbc</a> 命名空间（用于 ODBC 的 .NET Framework 数据提供程序）、<a href="http://msdn.microsoft.com/zh-cn/library/system.data.oledb(VS.80).aspx">System.Data.OleDb</a> 命名空间（用于 OLE DB 的 .NET Framework 数据提供程序）或 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.oracleclient(VS.80).aspx">System.Data.OracleClient</a> 命名空间（用于 Oracle 的 .NET Framework 数据提供程序），可访问要与 DataSet 结合使用的数据源。每个 .NET Framework 数据提供程序都有相应的 DataAdapter，可以将它用作数据源和 DataSet 之间的桥梁。
<table cellpadding="0" width="97%" border="1">
    <tbody>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.dataset(VS.80).aspx">DataSet</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">表示数据在内存中的缓存。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.datatable(VS.80).aspx">DataTable</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">表示内存中数据的一个表。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.datarowview(VS.80).aspx">DataRowView</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">表示 <a href="http://msdn.microsoft.com/zh-cn/library/system.data.datarow(VS.80).aspx">DataRow</a> 的自定义视图。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.datarow(VS.80).aspx">DataRow</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">表示 DataTable 中的一行数据。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn(VS.80).aspx">DataColumn</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">表示 DataTable 中列的架构。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.datarowcollection(VS.80).aspx">DataRowCollection</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">表示 DataTable 的行的集合。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.data.datacolumncollection(VS.80).aspx">DataColumnCollection</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">表示 DataTable 的 DataColumn 对象的集合。</p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">System.Collections 命名空间
<table cellpadding="0" width="97%" border="1">
    <tbody>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.collections.arraylist.aspx">ArrayList</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">使用大小可按需动态增加的数组实现 <a href="http://msdn.microsoft.com/zh-cn/library/system.collections.ilist.aspx">IList</a> 接口。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.collections.collectionbase.aspx">CollectionBase</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">为强类型集合提供 abstract 基类。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.collections.dictionarybase.aspx">DictionaryBase</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">为键/值对的强类型集合提供 abstract 基类。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.collections.hashtable.aspx">Hashtable</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">表示键/值对的集合，这些键/值对根据键的哈希代码进行组织。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.collections.queue.aspx">Queue</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">表示对象的先进先出集合。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.collections.stack.aspx">Stack</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">表示对象的简单的后进先出非泛型集合。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.collections.sortedlist.aspx">SortedList</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">表示键/值对的集合，这些键值对按键排序并可按照键和索引访问。</p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">&nbsp;
<table cellpadding="0" width="97%" border="1">
    <tbody>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.collections.icollection.aspx">ICollection</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">定义所有非泛型集合的大小、枚举数和同步方法。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.collections.idictionary.aspx">IDictionary</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">表示键/值对的非通用集合。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.collections.ilist.aspx">IList</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">表示可按照索引单独访问的对象的非泛型集合。</p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p style="text-indent: 2em">ICollection 接口 ;</p>
<p style="text-indent: 2em">IEnumerable 接口 ; IEnumerator 接口; </p>
<p style="text-indent: 2em">&nbsp;</p>
<img src ="http://www.blogjava.net/ap0406708/aggbug/293951.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ap0406708/" target="_blank">肇哥</a> 2009-09-05 00:02 <a href="http://www.blogjava.net/ap0406708/articles/293951.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>控制台程序,窗口程序对HTML操作相关的类            (发表于 @ 2008年11月14日 00:44:00    163.com)</title><link>http://www.blogjava.net/ap0406708/articles/293950.html</link><dc:creator>肇哥</dc:creator><author>肇哥</author><pubDate>Fri, 04 Sep 2009 15:59:00 GMT</pubDate><guid>http://www.blogjava.net/ap0406708/articles/293950.html</guid><wfw:comment>http://www.blogjava.net/ap0406708/comments/293950.html</wfw:comment><comments>http://www.blogjava.net/ap0406708/articles/293950.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ap0406708/comments/commentRss/293950.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ap0406708/services/trackbacks/293950.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em">System.Net 命名空间</p>
<p style="text-indent: 2em">System.Net 命名空间为当前网络上使用的多种协议提供了简单的编程接口。<a href="http://msdn.microsoft.com/zh-cn/library/system.net.webrequest(VS.80).aspx">WebRequest</a> 和 <a href="http://msdn.microsoft.com/zh-cn/library/system.net.webresponse(VS.80).aspx">WebResponse</a> 类形成了所谓的可插接式协议的基础，可插接式协议是网络服务的一种实现，它使您能够开发出使用 Internet 资源的应用程序，而不必考虑各种不同协议的具体细节。
<table cellpadding="0" width="97%" border="1">
    <tbody>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.net.httpwebrequest(VS.80).aspx">HttpWebRequest</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">提供 WebRequest 类的 HTTP 特定的实现。</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.net.webclient(VS.80).aspx">WebClient</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">提供向 URI 标识的资源发送数据和从 URI 标识的资源接收数据的公共方法。</p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">System.Windows.Forms 命名空间</p>
<p style="text-indent: 2em">System.Windows.Forms 命名空间包含用于创建基于 Windows 的应用程序的类，以充分利用 Microsoft Windows 操作系统中提供的丰富的用户界面功能。
<table cellpadding="0" width="97%" border="1">
    <tbody>
        <tr>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em"><a href="http://msdn.microsoft.com/zh-cn/library/system.windows.forms.webbrowser.aspx">WebBrowser</a></p>
            </td>
            <td valign="top">
            <p>&nbsp;</p>
            <p style="text-indent: 2em">使用户可以在窗体中导航网页。</p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p style="text-indent: 2em">&nbsp;</p>
<img src ="http://www.blogjava.net/ap0406708/aggbug/293950.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ap0406708/" target="_blank">肇哥</a> 2009-09-04 23:59 <a href="http://www.blogjava.net/ap0406708/articles/293950.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>错误:A potentially dangerous Request.Form value was detected from the client</title><link>http://www.blogjava.net/ap0406708/articles/281943.html</link><dc:creator>肇哥</dc:creator><author>肇哥</author><pubDate>Fri, 12 Jun 2009 17:41:00 GMT</pubDate><guid>http://www.blogjava.net/ap0406708/articles/281943.html</guid><wfw:comment>http://www.blogjava.net/ap0406708/comments/281943.html</wfw:comment><comments>http://www.blogjava.net/ap0406708/articles/281943.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ap0406708/comments/commentRss/281943.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ap0406708/services/trackbacks/281943.html</trackback:ping><description><![CDATA[<h2><em>A potentially dangerous Request.Form value was detected from the client (TextBox1="...tf-16"?&gt;<br />
&lt;xs:schema id="NewDa...").</em> </h2>
<font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "><strong>Description: </strong>Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. You can disable request validation by setting validateRequest=false in the Page directive or in the
<pages>configuration section. However, it is strongly recommended that your application explicitly check all inputs in this case. <br />
<br />
<strong>Exception Details: </strong>System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (TextBox1="...tf-16"?&gt;<br />
&lt;xs:schema id="NewDa...").<br />
<br />
<strong>Source Error:</strong> <br />
<br />
<table width="100%" bgcolor="#ffffcc">
    <tbody>
        <tr>
            <td><code>
            <pre>[No relevant source lines]</pre>
            </code></td>
        </tr>
    </tbody>
</table>
<br />
<strong>Source File: </strong>c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\12\65c96b58\17a872ec\App_Web_syqk3h8u.0.cs<strong> &nbsp;&nbsp; Line: </strong>0 <br />
<br />
<strong>Stack Trace:</strong> <br />
<br />
<table width="100%" bgcolor="#ffffcc">
    <tbody>
        <tr>
            <td><code>
            <pre>[HttpRequestValidationException (0x80004005): A potentially dangerous Request.Form value was detected from the client (TextBox1="...tf-16"?&gt;
            &lt;xs:schema id="NewDa...").]
            System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName) +287
            System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, String collectionName) +107
            System.Web.HttpRequest.get_Form() +109
            System.Web.HttpRequest.get_HasForm() +59
            System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) +46
            System.Web.UI.Page.DeterminePostBackMode() +71
            System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +7992
            System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +158
            System.Web.UI.Page.ProcessRequest() +85
            System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +20
            System.Web.UI.Page.ProcessRequest(HttpContext context) +110
            ASP.default_aspx.ProcessRequest(HttpContext context) in c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\12\65c96b58\17a872ec\App_Web_syqk3h8u.0.cs:0
            System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +317
            System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously) +65
            </pre>
            </code></td>
        </tr>
    </tbody>
</table>
</font><br />
菜鸟级解决方案:<br />
由于在.net中，Request时出现有HTML或Javascript等字符串时，系统会认为是危险性值。立马报错。<br />
<br />
解决方案一：&nbsp;<br />
在.aspx文件头中加入这句：&nbsp;<br />
&lt;%@&nbsp;Page&nbsp;validateRequest="false"&nbsp;&nbsp;%&gt;&nbsp;<br />
<br />
解决方案二：&nbsp;<br />
修改web.config文件:&nbsp;<br />
&lt;configuration&gt;&nbsp;<br />
&nbsp;&nbsp;&lt;system.web&gt;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;pages&nbsp;validateRequest="false"&nbsp;/&gt;&nbsp;<br />
&nbsp;&nbsp;&lt;/system.web&gt;&nbsp;<br />
&lt;/configuration&gt;&nbsp;<br />
<br />
因为validateRequest默认值为true。只要设为false即可。 <br />
<br />
http://www.cnblogs.com/tyeying/archive/2005/11/28/286127.html<br />
<br />
请慎用ASP.Net的validateRequest="false" <br />
http://tech.techweb.com.cn/thread-190917-1-2.html<br />
<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=ASP">ASP</span>.Net 1.1后引入了对提交表单自动检查是否存在XSS(跨站脚本攻击)的能力。当<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%D3%C3%BB%A7">用户</span>试图用之类的输入影响<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%D2%B3%C3%E6">页面</span>返回结果的时候，ASP.Net的引擎会引发一个 HttpRequestValidationExceptioin。默认情况下会返回如下文字的页面：<font style="font-size: 0px; color: #fff"># c4 L* t; e" z/ R* r' @5 f</font><br />
<font style="font-size: 0px; color: #fff">3 L% Z- i. R" f* j</font><br />
以下是引用片段：<font style="font-size: 0px; color: #fff">7 ?1 y2 E' A" M! R5 F9 W</font><br />
Server Error in '/Your<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=App">App</span>licationPath' Application<br />
<br />
<font style="font-size: 0px; color: #fff">) P9 i9 u0 R;</font><br />
　　这是ASP.Net提供的一个很重要的安全特性。因为很多程序员对安全没有概念，甚至都不知道XSS这种攻击的存在，知道主动去防护的就更少了。ASP.Net在这一点上做到默认安全。这样让对安全不是很了解的程序员依旧可以写出有一定安全防护能力的网站。<font style="font-size: 0px; color: #fff">; L1 C* n% n! x&nbsp;&nbsp;c$ @( O8 M</font><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 但是，当我Google搜索 HttpRequestValidationException 或者 "A potentially dangerous Request.Form value was detected from the client"的时候，惊奇的发现大部分人给出的<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%BD%E2%BE%F6">解决</span>方案竟然是在ASP.Net页面描述中通过设置 validateRequest=false 来禁用这个特性，而不去关心那个程序员的网站是否真的不需要这个特性。看得我这叫一个胆战心惊。安全意识应该时时刻刻在每一个程序员的心里，不管你对安全的概念了解多少，一个主动的意识在脑子里，你的站点就会安全很多。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为什么很多程序员想要禁止 validateRequest 呢?有一部分是真的需要用户输入"&lt;&gt;"之类的字符。这就不必说了。还有一部分其实并不是用户允许输入那些容易引起XSS的字符，而是讨厌这种报错的形式，毕竟一大段英文加上一个ASP.Net典型异常错误信息，显得这个站点出错了，而不是用户输入了非法的字符，可是自己又不知道怎么不让它报错，自己来处理报错。<font style="font-size: 0px; color: #fff">! v/ r6 t/ r&amp; q/ H( Z&amp; i</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于希望很好的处理这个错误信息，而不使用默认ASP.Net异常报错信息的程序员们，你们不要禁用validateRequest=false。<font style="font-size: 0px; color: #fff">6 L8 d2 ~9 l+ A7 f&amp; l, L: X) R</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 正确的做法是在你当前页面添加Page_Error()<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%BA%AF%CA%FD">函数</span>，来捕获所有页面处理过程中发生的而没有处理的异常。然后给用户一个合法的报错信息。如果当前页面没有Page_Error()，这个异常将会送到Global.asax的Application_Error()来处理，你也可以在那里写通用的异常报错处理函数。如果两个地方都没有写异常处理函数，才会显示这个默认的报错页面呢。
 <img src ="http://www.blogjava.net/ap0406708/aggbug/281943.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ap0406708/" target="_blank">肇哥</a> 2009-06-13 01:41 <a href="http://www.blogjava.net/ap0406708/articles/281943.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>