100165648.htm
来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 231 行 · 第 1/4 页
HTM
231 行
<p class="MsoNormal"><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">private XmlDataDocument doc;</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">这么做的原因是现在使用的是</span><span lang="EN-US">XmlDataDocument</span><span style="FONT-FAMILY: 宋体">。下面的代码在</span><span lang="EN-US">ADOSample2</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">private void button1</span><span lang="EN-US" style="FONT-FAMILY: 'Baskerville BE Regular'">_</span><span lang="EN-US">Click(object sender, System.EventArgs e)</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"> //create a dataset</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> DataSet ds=new DataSet("XMLProducts");</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> //connect to the northwind database and </span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> //select all of the rows from products table</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> //make changes to connect string to match your login and server name</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> SqlConnection conn=new SqlConnection</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> (@"server=GLYNNJ</span><span lang="EN-US" style="FONT-FAMILY: 'Baskerville BE Regular'">_</span><span lang="EN-US">CS\NetSDK;uid=sa;pwd=;database=northwind");</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> SqlDataAdapter da=new SqlDataAdapter("SELECT * FROM products",conn); </span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> //fill the dataset</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> da.Fill(ds,"products");</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> //load data into grid</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> dataGrid1.DataSource=ds;</span></p>
<p class="a6" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> dataGrid1.DataMember="products";</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> doc=new XmlDataDocument(ds);</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> </span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> //get all of the products elements</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> XmlNodeList nodeLst=doc.GetElementsByTagName("ProductName");</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> </span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> //load them into the list box</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> //we'll use a for loop this time</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> for(int ctr=0;ctr<nodeLst.Count;ctr++)</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> listBox1.Items.Add(nodeLst[ctr].InnerText);</span></p>
<p class="a6" style="MARGIN-TOP: 0cm; BACKGROUND: #f2f2f2; 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">DataSet</span><span style="FONT-FAMILY: 宋体">加载到</span><span lang="EN-US">XML</span><span style="FONT-FAMILY: 宋体">文档中的代码已经进行了简化。它没有使用</span><span lang="EN-US">XmlDocument</span><span style="FONT-FAMILY: 宋体">类,而使用了</span><span lang="EN-US">XmlDataDocument</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">XmlDataDocument</span><span style="FONT-FAMILY: 宋体">基于</span><span lang="EN-US">XmlDocument</span><span style="FONT-FAMILY: 宋体">类,所以它拥有</span><span lang="EN-US">XmlDocument</span><span style="FONT-FAMILY: 宋体">类的所有功能。一个主要区别是</span><span lang="EN-US">XmlDataDocument</span><span style="FONT-FAMILY: 宋体">有重载的构造函数。注意下面的代码实例化了</span><span lang="EN-US">XmlDataDocument</span><span style="FONT-FAMILY: 宋体">对象</span><span lang="EN-US">doc</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">doc = new XmlDataDocument(ds);</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">它的参数是我们创建的</span><span lang="EN-US">DataSet</span><span style="FONT-FAMILY: 宋体">对象</span><span lang="EN-US">ds</span><span style="FONT-FAMILY: 宋体">,从数据集中创建</span><span lang="EN-US">XML</span><span style="FONT-FAMILY: 宋体">文档,而且不必使用</span><span lang="EN-US">Load</span><span style="FONT-FAMILY: 宋体">方法。实际上,如果实例化一个新的</span><span lang="EN-US">XmlDataDocument</span><span style="FONT-FAMILY: 宋体">对象时,不把</span><span lang="EN-US">DataSet</span><span style="FONT-FAMILY: 宋体">作为参数,该</span><span lang="EN-US">XmlDataDocument</span><span style="FONT-FAMILY: 宋体">就会包含一个名为</span><span lang="EN-US">NewDataSet</span><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">XmlDataDocument</span><span style="FONT-FAMILY: 宋体">的对象后,还可以设置一个</span><span lang="EN-US">DataSet</span><span style="FONT-FAMILY: 宋体">属性。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">如果下面的代码添加到</span><span lang="EN-US">DataSet.Fill</span><span style="FONT-FAMILY: 宋体">调用的后面:</span></p>
<p class="a6" style="MARGIN-TOP: 8.15pt; BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">ds.WriteXml("c:\\test\\sample.xml", XmlWriteMode.WriteSchema);</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">就会在文件夹</span><span lang="EN-US">C:\test</span><span style="FONT-FAMILY: 宋体">中生成下面的</span><span lang="EN-US">XML</span><span style="FONT-FAMILY: 宋体">文件:</span></p>
<p class="a6" style="MARGIN-TOP: 8.15pt; BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US"><?xml version="1.0" standalone="yes"?></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"><XMLProducts></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> <xs:schema id="XMLProducts" xmlns="" </span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> xmlns:xs="http://www.w3.org/2001/XMLSchema" </span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> <xs:element FTEL="XMLProducts" msdata:IsDataSet="true"></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> <xs:complexType></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> <xs:choice maxOccurs="unbounded"></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> <xs:element FTEL="products"></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> <xs:complexType></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> <xs:sequence></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> <xs:element FTEL="ProductID" type="xs:int" </span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> minOccurs="0" /></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> <xs:element FTEL="ProductName" type="xs:string" </span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> minOccurs="0" /></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> <xs:element FTEL="SupplierID" type="xs:int"</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> minOccurs="0" /></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> <xs:element FTEL="CategoryID" type="xs:int"</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> minOccurs="0" /></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> <xs:element FTEL="QuantityPerUnit" type="xs:string" </span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> minOccurs="0" /></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> <xs:element FTEL="UnitPrice" type="xs:decimal" </span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13pt; FTEL: 18.45pt"><span lang="EN-US"> minOccurs="0" /></span></p>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?