100165608.htm

来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 343 行 · 第 1/4 页

HTM
343
字号
<p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p>
<p class="a5" style="MARGIN-TOP: 8.15pt"><span style="FONT-FAMILY: 黑体">表</span><span lang="EN-US">&nbsp; 21-8</span></p>
<div align="center">
<table class="MsoNormalTable" style="MARGIN-LEFT: 5.55pt; WIDTH: 436.7pt; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM-STYLE: none" cellspacing="0" cellpadding="0" width="582" border="1">
    <tbody>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 9.9pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 9.9pt; BORDER-LEFT-WIDTH: 1pt; BORDER-LEFT-COLOR: windowtext; PADDING-BOTTOM: 0cm; WIDTH: 133.4pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="178">
            <p class="a2"><span style="FONT-FAMILY: 黑体">选</span><span lang="EN-US">&nbsp;&nbsp;&nbsp; </span><span style="FONT-FAMILY: 黑体">项</span></p>
            </td>
            <td style="PADDING-RIGHT: 9.9pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 0cm; WIDTH: 303.3pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none" valign="top" width="404">
            <p class="a2"><span style="FONT-FAMILY: 黑体">说</span><span lang="EN-US">&nbsp;&nbsp;&nbsp; </span><span style="FONT-FAMILY: 黑体">明</span></p>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 9.9pt; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 0cm; WIDTH: 133.4pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT-STYLE: none" valign="top" width="178">
            <p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">/dataset (/d)</span></p>
            </td>
            <td style="PADDING-RIGHT: 9.9pt; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 0cm; WIDTH: 303.3pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none" valign="top" width="404">
            <p class="a4" style="MARGIN-LEFT: 10.7pt"><span style="FONT-FAMILY: 宋体">生成派生于</span><span lang="EN-US">DataSet</span><span style="FONT-FAMILY: 宋体">、</span><span lang="EN-US">DataTable</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">DataRow</span><span style="FONT-FAMILY: 宋体">的类</span></p>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 9.9pt; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 0cm; WIDTH: 133.4pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT-STYLE: none" valign="top" width="178">
            <p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">/language:&lt;language&gt;</span></p>
            </td>
            <td style="PADDING-RIGHT: 9.9pt; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 0cm; WIDTH: 303.3pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none" valign="top" width="404">
            <p class="a4" style="MARGIN-LEFT: 10.7pt"><span style="FONT-FAMILY: 宋体">允许选择编写输出文件的语言。</span><span lang="EN-US">C#</span><span style="FONT-FAMILY: 宋体">是默认语言,也可以选择用</span><span lang="EN-US">VB</span><span style="FONT-FAMILY: 宋体">编写</span><span lang="EN-US">Visual Basic</span><span style="FONT-FAMILY: 宋体">文件</span></p>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 9.9pt; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 0cm; WIDTH: 133.4pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT-STYLE: none" valign="top" width="178">
            <p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">/namespace:&lt;namespace&gt;</span></p>
            </td>
            <td style="PADDING-RIGHT: 9.9pt; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 0cm; WIDTH: 303.3pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none" valign="top" width="404">
            <p class="a4" style="MARGIN-LEFT: 10.7pt"><span style="FONT-FAMILY: 宋体">定义存储生成代码的命名空间,默认为没有命名空间</span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">下面节选了</span><span lang="EN-US">products</span><span style="FONT-FAMILY: 宋体">模式在</span><span lang="EN-US">XSD</span><span style="FONT-FAMILY: 宋体">中的输出结果,并做了略微的修改,重新进行了格式化,以便可以放在本书中。要查看完整的输出结果,可以在</span><span lang="EN-US">products</span><span style="FONT-FAMILY: 宋体">模式</span><span lang="EN-US">(</span><span style="FONT-FAMILY: 宋体">或者自己建立的某个模式</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">上运行</span><span lang="EN-US">XSD.EXE</span><span style="FONT-FAMILY: 宋体">,查看生成的</span><span lang="EN-US">.cs</span><span style="FONT-FAMILY: 宋体">文件。该示例包含了所有的源代码和</span><span lang="EN-US">Products.XSD</span><span style="FONT-FAMILY: 宋体">文件,这个输出结果是</span><span lang="EN-US">www.wroc.com</span><span style="FONT-FAMILY: 宋体">上下载代码文件的一部分。</span></p>
<p class="2" style="MARGIN-TOP: 8.15pt; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">//------------------------------------------------------------------------------</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">// &lt;autogenerated&gt;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">//&nbsp;&nbsp;&nbsp;&nbsp; This code was generated by a tool.</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">//&nbsp;&nbsp;&nbsp;&nbsp; Runtime Version: 11.4322.573</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">//</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">//&nbsp;&nbsp;&nbsp; &nbsp;Changes to this file may cause incorrect behavior and will be lost if </span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">//&nbsp;&nbsp;&nbsp;&nbsp; the code is regenerated.</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">// &lt;/autogenerated&gt;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">//------------------------------------------------------------------------------</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">// </span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">// This source code was auto-generated by xsd, Version=11.4322.573</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">// </span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">using System;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">using System.Data;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">using System.Xml;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">using System.Runtime.Serialization;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">[Serializable()]</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">[System.ComponentModel.DesignerCategoryAttribute(&quot;code&quot;)]</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">[System.Diagnostics.DebuggerStepThrough()]</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">[System.ComponentModel.ToolboxItem(true)]</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">public class Products : DataSet </span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">{</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; private ProductDataTable tableProduct;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; public Products()</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; public ProductDataTable Product </span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; public override DataSet Clone()</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; public delegate void ProductRowChangeEventHandler ( object sender,</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;ProductRowChangeEvent e);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><strong><span lang="EN-US">&nbsp;</span></strong><span lang="EN-US">&nbsp; [System.Diagnostics.DebuggerStepThrough()]</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; public class ProductDataTable : DataTable, System.Collections.IEnumerable</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; [System.Diagnostics.DebuggerStepThrough()]</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; public class ProductRow : DataRow</span></p>
<p class="2" style="MARGIN-TOP: 0cm; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">}</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">为了集中论述公共接口,这段代码删除了所有受保护和私有的成员。</span><span lang="EN-US">ProductDataTable</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">ProductRow</span><span style="FONT-FAMILY: 宋体">定义是两个嵌套的类,后面会介绍它们。下面简单地解释一下</span><span lang="EN-US">DataSet</span><span style="FONT-FAMILY: 宋体">派生类,之后讨论这些类的代码。</span></p>
<p class="MsoNormal"><span lang="EN-US">Products()</span><span style="FONT-FAMILY: 宋体">构造函数调用一个私有方法</span><span lang="EN-US">InitClass()</span><span style="FONT-FAMILY: 宋体">,构造派生于</span><span lang="EN-US">DataTable</span><span style="FONT-FAMILY: 宋体">类的</span><span lang="EN-US">ProductDataTable</span><span style="FONT-FAMILY: 宋体">的一个实例,把该表添加到</span><span lang="EN-US">DataSet</span><span style="FONT-FAMILY: 宋体">的</span><span lang="EN-US">Tables</span><span style="FONT-FAMILY: 宋体">集合上。</span><span lang="EN-US">Products</span><span style="FONT-FAMILY: 宋体">数据表可以通过下面的代码来访问:</span></p>
<p class="2" style="MARGIN-TOP: 8.15pt; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">DataSet ds = new Products();</span></p>
<p class="2" style="MARGIN-TOP: 0cm; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">DataTable products = ds.Tables[&quot;Products&quot;];</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">更简单的方式是使用</span><span lang="EN-US">Product</span><span style="FONT-FAMILY: 宋体">属性来访问,该属性在派生的</span><span lang="EN-US">DataSet</span><span style="FONT-FAMILY: 宋体">对象上:</span></p>
<p class="2" style="MARGIN-TOP: 8.15pt; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">DataTable products = ds.Product;</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">因为</span><span lang="EN-US">Product</span><span style="FONT-FAMILY: 宋体">属性是强类型化的,所以可以使用</span><span lang="EN-US">ProductDataTable</span><span style="FONT-FAMILY: 宋体">,而不是上面的</span><span lang="EN-US">DataTable</span><span style="FONT-FAMILY: 宋体">引用。</span></p>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?