100165651.htm
来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 181 行 · 第 1/3 页
HTM
181 行
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> //fill the DataSet</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> da.Fill(ds,"products");</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> //edit first row</span></p>
<p class="2" style="MARGIN-TOP: 0cm; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US"> ds.Tables["products"].Rows[0]["ProductName"]="NewProdName";</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">下面一部分代码完成了两个任务。首先,把第一行的</span><span lang="EN-US">ProductName</span><span style="FONT-FAMILY: 宋体">列改为</span><span lang="EN-US">NewProdName</span><span style="FONT-FAMILY: 宋体">。其次,在</span><span lang="EN-US">DataTable</span><span style="FONT-FAMILY: 宋体">中创建一个新行,设置列值,最后把新的数据行添加到</span><span lang="EN-US">DataTable</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"> //add new row</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> DataRow dr=ds.Tables["products"].NewRow();;</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 15pt; FTEL: 18.45pt"><span lang="EN-US"> dr["ProductId"]=100;</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 15pt; FTEL: 18.45pt"><span lang="EN-US"> dr["CategoryId"]=2;</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 15pt; FTEL: 18.45pt"><span lang="EN-US"> dr["Discontinued"]=false;</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 15pt; FTEL: 18.45pt"><span lang="EN-US"> dr["ProductName"]="This is the new product";</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 15pt; FTEL: 18.45pt"><span lang="EN-US"> dr["QuantityPerUnit"]=12;</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 15pt; FTEL: 18.45pt"><span lang="EN-US"> dr["ReorderLevel"]=1;</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 15pt; FTEL: 18.45pt"><span lang="EN-US"> dr["SupplierId"]=12;</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 15pt; FTEL: 18.45pt"><span lang="EN-US"> dr["UnitPrice"]=23;</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 15pt; FTEL: 18.45pt"><span lang="EN-US"> dr["UnitsInStock"]=5;</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> dr["UnitsOnOrder"]=0;</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"> ds.Tables["products"].Rows.Add(dr);</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">这是代码中比较有意义的一部分。首先用</span><span lang="EN-US">WriteXmlSchema</span><span style="FONT-FAMILY: 宋体">编写模式,这是非常重要的,因为没有模式,就不能读取</span><span lang="EN-US">DiffGram</span><span style="FONT-FAMILY: 宋体">。带有</span><span lang="EN-US">XmlWriteMode.DiffGram</span><span style="FONT-FAMILY: 宋体">参数的</span><span lang="EN-US">WriteXml</span><span style="FONT-FAMILY: 宋体">创建了</span><span lang="EN-US">DiffGram</span><span style="FONT-FAMILY: 宋体">。下一行代码接受我们进行的修改。在调用</span><span lang="EN-US">AcceptChanges</span><span style="FONT-FAMILY: 宋体">前创建</span><span lang="EN-US">DiffGram</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"> //Write the Schema </span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> ds.WriteXmlSchema("..\\..\\..\\diffgram.xsd");</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> //generate the DiffGram</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> ds.WriteXml("..\\..\\..\\diffgram.xml",XmlWriteMode.DiffGram);</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> ds.AcceptChanges(); </span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> //load data into grid</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> </span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> dataGrid1.DataSource=ds;</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> dataGrid1.DataMember="products";</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> </span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> //new XmlDataDocument</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> doc=new XmlDataDocument(ds);</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> //load the productnames in the list</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> XmlNodeList nodeLst=doc.SelectNodes("//ProductName");</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> foreach(XmlNode nd in nodeLst)</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> listBox1.Items.Add(nd.InnerXml);</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></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"> DataSet dsNew=new DataSet();</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> dsNew.ReadXmlSchema("..\\..\\..\\diffgram.xsd");</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"> dsNew.XmlRead("..\\..\\..\\diffgram.xml",XmlReadMode.DiffGram);</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">dsNew</span><span style="FONT-FAMILY: 宋体">,调用</span><span lang="EN-US">ReadXmlSchema</span><span style="FONT-FAMILY: 宋体">方法,根据模式信息创建一个新的</span><span lang="EN-US">DataTable</span><span style="FONT-FAMILY: 宋体">。在本例中,就是</span><span lang="EN-US">products</span><span style="FONT-FAMILY: 宋体">表的一个复制。现在可以读取</span><span lang="EN-US">DiffGram</span><span style="FONT-FAMILY: 宋体">,该</span><span lang="EN-US">DiffGram</span><span style="FONT-FAMILY: 宋体">不包含任何模式信息,所以在调用</span><span lang="EN-US">ReadXml</span><span style="FONT-FAMILY: 宋体">方法前创建和准备好</span><span lang="EN-US">DataTable</span><span style="FONT-FAMILY: 宋体">就是非常重要的。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">下面是</span><span lang="EN-US">DiffGram</span><span style="FONT-FAMILY: 宋体">的一个示例</span><span lang="EN-US">(diffgram.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; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"><diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> <XMLProducts></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> <products diffgr:id="products1" msdata:rowOrder="0"</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> diffgr:hasChanges="modified"></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> <ProductID>1</ProductID></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> <ProductName>NewProdName</ProductName></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> <SupplierID>1</SupplierID></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> <CategoryID>1</CategoryID></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> <QuantityPerUnit>10 boxes x 20 bags</QuantityPerUnit></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> <UnitPrice>18</UnitPrice></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> <UnitsInStock>39</UnitsInStock></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> <UnitsOnOrder>0</UnitsOnOrder></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> <ReorderLevel>10</ReorderLevel></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> <Discontinued>false</Discontinued></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> </products></span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> ...</span></p>
<p class="a6" style="BACKGROUND: #f2f2f2; MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> <products diffgr:id="products78" msdata:rowOrder="77"</span></p>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?