100165608.htm
来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 343 行 · 第 1/4 页
HTM
343 行
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">另外,对于每个可为空的字段,还有函数可以把该字段设置为</span><span lang="EN-US">null</span><span style="FONT-FAMILY: 宋体">,并检查该字段是否为</span><span lang="EN-US">null</span><span style="FONT-FAMILY: 宋体">。下面的示例列出了</span><span lang="EN-US">SupplierID</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">[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-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"> </span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> internal ProductRow(DataRowBuilder rb) : base(rb)</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.tableProduct = ((ProductDataTable)(this.Table));</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"> public int ProductID</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"> get { return ((int)(this[this.tableProduct.ProductIDColumn])); }</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> set { this[this.tableProduct.ProductIDColumn] = value; }</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"> // Other column accessors/mutators removed for clarity</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"> public bool IsSupplierIDNull()</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"> return this.IsNull(this.tableProduct.SupplierIDColumn);</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"> public void SetSupplierIDNull()</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[this.tableProduct.SupplierIDColumn] = System.Convert.DBNull;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> }</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">XSD</span><span style="FONT-FAMILY: 宋体">工具中的类的输出从</span><span lang="EN-US">Product</span><span style="FONT-FAMILY: 宋体">表中检索数据,并在控制台上显示这些数据:</span></p>
<p class="a6" style="MARGIN-TOP: 8.15pt; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">using System;</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">using System.Data;</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">using System.Data.SqlClient;</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> </span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">public class XSD</span><span lang="EN-US" style="FONT-FAMILY: 'Baskerville BE Regular'">_</span><span lang="EN-US">DataSet</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">{</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> public static void Main()</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> {</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> string source = "server=(local)\\NetSDK;" +</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> "uid=QSUser;pwd=QSPassword;" + </span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> "database=northwind";</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> string select = "SELECT * FROM Products";</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> SqlConnection conn = new SqlConnection(source);</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> SqlDataAdapter da = new SqlDataAdapter(select , conn);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> Products ds = new Products();</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> da.Fill(ds , "Product");</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> foreach(Products.ProductRow row in ds.Product )</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> Console.WriteLine("'{0}' from {1}" , </span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> row.ProductID ,</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> row.ProductName);</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> }</span></p>
<p class="a6" 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">XSD</span><span style="FONT-FAMILY: 宋体">文件的输出结果包含一个派生于</span><span lang="EN-US">DataSet</span><span style="FONT-FAMILY: 宋体">的类</span><span lang="EN-US">Products</span><span style="FONT-FAMILY: 宋体">,使用数据适配器来创建和填充这个类。</span><span lang="EN-US">foreach</span><span style="FONT-FAMILY: 宋体">语句使用了强类型化的</span><span lang="EN-US">ProductRow</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">Product</span><span style="FONT-FAMILY: 宋体">属性,返回</span><span lang="EN-US">Product</span><span style="FONT-FAMILY: 宋体">数据表。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">要编译这个示例,执行下面的命令:</span></p>
<p class="a6" style="MARGIN-TOP: 8.15pt; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><strong><span lang="EN-US">xsd product.xsd /d</span></strong></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">和</span></p>
<p class="a6" style="MARGIN-TOP: 8.15pt; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><strong><span lang="EN-US">csc /recurse:*.cs</span></strong></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">第一个命令从</span><span lang="EN-US">Products.XSD</span><span style="FONT-FAMILY: 宋体">模式中生成</span><span lang="EN-US">Products.cs</span><span style="FONT-FAMILY: 宋体">文件,然后,</span><span lang="EN-US">csc</span><span style="FONT-FAMILY: 宋体">命令使用</span><span lang="EN-US">/recurse:*.cs</span><span style="FONT-FAMILY: 宋体">参数查找扩展名为</span><span lang="EN-US">.cs</span><span style="FONT-FAMILY: 宋体">的文件,并把它们添加到所生成的程序集中。</span></p></div>
<!-- page -->
<div class="page" style="text-align: center">
<a href="100165607.htm">上一页</a> <a href="index.html">首页</a> <a href="100165609.htm">下一页</a>
</div>
<div style="margin: 0px auto; width: 700px; border: solid 1px #0b5f98;">
<div style="float: left; width: 16px; background-color: #0b5f98; color: White; padding: 1px;">
图书导读
</div>
<div style="float: right; width: 670px; text-align: left; line-height: 16pt; padding-left: 2px">
<!--导读-->
<h1 id="divCurrentNode2" style="color: #b83507; width: 100%; text-align: left; font-size: 12px; padding-left: 2px">当前章节:<a href='100165608.htm'><font color='red'>21.6 XML模式</font></a></h1>
<div id="divRealteNod2" style="padding-left: 2px">
<div style='float:left;width:49%'>·<a href='100165605.htm'>21.5.2 数据列</a></div><div style='float:right;width:49%'>·<a href='100165606.htm'>21.5.3 数据关系</a></div><div style='float:left;width:49%'>·<a href='100165607.htm'>21.5.4 数据约束</a></div><div style='float:right;width:49%'>·<a href='100165609.htm'>21.7 填充数据集</a></div><div style='float:left;width:49%'>·<a href='100165610.htm'>21.7.1 用数据适配器来填充 DataSet</a></div><div style='float:right;width:49%'>·<a href='100165611.htm'>21.7.2 从XML中给数据集填充数据</a></div></div>
</div>
</div>
</div>
<!-- 评论 -->
<!-- 今日推荐 -->
</div>
<!-- 页脚 -->
<div id="foot">
<img src="../../book/readbook.aspx@node=5608&bookid=16&bookname=21.6++XML_25c4_25a3_25ca_25bd" alt="" width="0" height="0" />
<style>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?