100165608.htm
来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 343 行 · 第 1/4 页
HTM
343 行
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="a5" style="MARGIN-TOP: 8.15pt"><span style="FONT-FAMILY: 黑体">表</span><span lang="EN-US"> 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"> </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"> </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:<language></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:<namespace></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"> </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">// <autogenerated></span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">// This code was generated by a tool.</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">// 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">// 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">// the code is regenerated.</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">// </autogenerated></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"> </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"> </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("code")]</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"> private ProductDataTable tableProduct;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> public Products()</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> public ProductDataTable Product </span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> public override DataSet Clone()</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> public delegate void ProductRowChangeEventHandler ( object sender,</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> ProductRowChangeEvent e);</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"><strong><span lang="EN-US"> </span></strong><span lang="EN-US"> [System.Diagnostics.DebuggerStepThrough()]</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> public class ProductDataTable : DataTable, System.Collections.IEnumerable</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"> [System.Diagnostics.DebuggerStepThrough()]</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> 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["Products"];</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 + -
显示快捷键?