设为首页收藏本站language 语言切换
查看: 1168|回复: 0
收起左侧

附录及其合作者

[复制链接]
发表于 2010-2-25 10:31:16 | 显示全部楼层 |阅读模式
<p ><B>适用于:</b><p >Microsoft&reg; .NET 应用程序<p ><B>摘要:</b><p >学习向 Microsoft .NET 应用程序公开数据的最佳方式,以及如何实现一个有效的策略以便在分布式应用程序的层间传递数据。(本文包含一些指向英文站点的链接。)<p ><b>目录</b><p ><ul><li>简介<p ><li>将关系数据映射到业务实体<p ><li>实现数据访问逻辑组件<p ><li>实现业务实体<p ><li>事务处理<p ><li>验证<p ><li>异常管理<p ><li>授权与安全性<p ><li>部署<p ><li>附录及其合作者</UL><B><font color="#330099">附录</font></b><p ><B>如何定义数据访问逻辑组件类</b><p >以下代码示例定义一个名为 CustomerDALC 的类,它是用于 Customer 业务实体的数据访问逻辑组件类。CustomerDALC 类为 Customer 业务实体实现 CRUD 操作,并提供了其他方法为此对象封装业务逻辑。<p ><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>public class CustomerDALC{  private string conn_string;  public CustomerDALC()  {    // 从安全或加密的位置获取连接字符串    // 并将其分配给 conn_string  }  public CustomerDataSet GetCustomer(string id)  {    // 检索包含 Customer 数据的有类型的 DataSet  }  public string CreateCustomer(string name,                               string address, string city, string state,string zip)  {    // 根据传递给此方法的标量参数,在数据库中创建一个    // 新客户。    // 从此方法返回 customerID。  }  public void UpdateCustomer(CustomerDataSet updatedCustomer)  {    // 根据作为类型 CustomerDataSet 的参数发送的 Customer 数据,更新    // 数据库。  }  public void DeleteCustomer(string id)  {    // 删除具有指定 ID 的客户  }  public DataSet GetCustomersWhoPurchasedProduct(int productID)  {    // 使用通用 DataSet 检索客户,因为此方法    // 不需要检索与客户关联的全部信息  }}</ccid_code></pre></td></tr></table></ccid_nobr><p ><B>如何使用 XML 表示数据的集合和层次结构</b><p >以下示例显示了如何在 XML 文档中表示数据的集合和层次结构。该 XML 文档表示客户的一个订单;注意,元素 <ccid_code>&lt;OrderDetails&gt;</ccid_code> 包含一个该订单的详细信息集合。<p ><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>&lt;Order xmlns=&quot;urn:aUniqueNamespace&quot;&gt;  &lt;OrderID&gt;10248&lt;/OrderID&gt;  &lt;CustomerID&gt;VINET&lt;/CustomerID&gt;  &lt;OrderDate&gt;1996-07-04&lt;/OrderDate&gt;  &lt;ShippedDate&gt;1996-07-16&lt;/ShippedDate&gt;  &lt;OrderDetails&gt;    &lt;OrderDetail&gt;      &ltroductID&gt;11&lt;/ProductID&gt;      &lt;UnitPrice&gt;14.00&lt;/UnitPrice&gt;      &lt;Quantity&gt;12&lt;/Quantity&gt;    &lt;/OrderDetail&gt;    &lt;OrderDetail&gt;      &ltroductID&gt;42&lt;/ProductID&gt;      &lt;UnitPrice&gt;9.80&lt;/UnitPrice&gt;      &lt;Quantity&gt;10&lt;/Quantity&gt;    &lt;/OrderDetail&gt;    &lt;OrderDetail&gt;      &ltroductID&gt;72&lt;/ProductID&gt;      &lt;UnitPrice&gt;34.80&lt;/UnitPrice&gt;      &lt;Quantity&gt;5&lt;/Quantity&gt;    &lt;/OrderDetail&gt;  &lt;/OrderDetails&gt;&lt;/Order&gt;</ccid_code></pre></td></tr></table></ccid_nobr><p ><B>如何在 .NET 应用程序中编程应用样式表</b><p >要在 .NET 应用程序中编程应用样式表,请执行以下步骤:<p ><ol><li>导入 System.Xml.Xsl 命名空间,如以下代码所示。System.Xml.Xsl 命名空间包含 .NET Framework 类库中的 XSLT 转换类。<p ><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>using System.Xml.Xsl;</ccid_code></pre></td></tr></table></ccid_nobr><p ><li>创建一个 XslTransform 对象,如以下代码所示:<p ><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>XslTransform stylesheet = new XslTransform();</ccid_code></pre></td></tr></table></ccid_nobr><p ><li>将所需样式表加载到 XslTransform 对象,如以下代码所示:<p ><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>stylesheet.Load(&quot;MyStylesheet.xsl&quot;);</ccid_code></pre></td></tr></table></ccid_nobr><p ><li>调用 XslTransform 对象的 Transform 方法,如以下代码所示。调用 Transform 方法指定 XML 源文档和结果文档的名称。<p ><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>stylesheet.Transform(sourceDoc, resultDoc);</ccid_code></pre></td></tr></table></ccid_nobr></ol><p ><B>如何创建有类型的 DataSet</b><p >可以使用有类型的 DataSet 表示业务实体。创建有类型的 DataSet 的方法有多种:<p ><ul><li>从 Microsoft Visual Studio &reg;.NET 中的数据适配器创建 <p ><li>从 Visual Studio .NET 中的 XSD 架构文件创建 <p ><li>使用 XSD 架构定义工具 (xsd.exe) 从 .NET Framework 命令提示窗口创建 <p >注意:也可以编程定义有类型的 DataSet,即从 DataSet 继承并定义方法、属性和嵌套类以表示该 DataSet 的结构。最简单的方法是使用以下过程之一创建一个有类型的 DataSet,然后将此有类型的 DataSet 类用作将来您自己的有类型的 DataSet 类的基础。</ul><B>使用数据适配器创建有类型的 DataSet</b><p >要使用数据适配器创建有类型的 DataSet,请执行以下步骤:<p ><ol><li>在 Visual Studio .NET 中,向您的窗体或组件添加一个数据适配器。在数据适配器的配置向导中,指定该数据适配器的连接信息。同时根据具体情况,为数据适配器的 Select、Insert、Update 和 Delete 命令指定 SQL 字符串或存储过程。 <p ><li>在组件设计器中,在数据适配器对象上单击鼠标右键,然后单击 Generate DataSet(生成 DataSet)。 <p ><li>在 Generate DataSet(生成 DataSet)对话框中,单击 New(新建),键入新 DataSet 类的名称,然后单击 OK(确定)。 <p ><li>为确认已创建该有类型的 DataSet,可以在解决方案资源管理器中单击 Show All Files(显示所有文件)按钮。展开 XSD 架构文件的节点,确认存在一个与 XSD 架构相关联的代码文件。该代码文件定义了新的有类型的 DataSet 类。 </ol><p ><B>从 XSD 架构文件创建有类型的 DataSet</b><p >要使用 Visual Studio .NET 从 XSD 架构文件创建有类型的 DataSet,请执行以下步骤:<p ><ol><li>在 Visual Studio .NET中,创建一个新项目或打开一个现有项目。 <p ><li>为项目添加一个现有的 XSD 架构,或在组件设计器中创建一个新的 XSD 架构。 <p ><li>在解决方案资源管理器中,双击 XSD 架构文件,在组件设计器中查看该 XSD 架构。 <p ><li>在组件设计器中选择主 XSD 架构元素。 <p ><li>在 Schema(架构)菜单中,单击 Generate DataSet(生成 DataSet)。 <p ><li>为确认已创建该有类型的 DataSet,可以在解决方案资源管理器中单击 Show All Files(显示所有文件)按钮。展开 XSD 架构文件的节点,确认存在一个与 XSD 架构相关联的代码文件。该代码文件定义了新的有类型的 DataSet 类。</ol><p ><B>使用 XSD 架构定义工具 (xsd.exe) 创建有类型的 DataSet</b><p >XML 架构定义工具可以从 XSD 架构文件、XDR 架构文件或 XML 实例文档生成有类型的 DataSet。以下命令使用名为 XsdSchemaFile.xsd 的 XSD 架构文件,在当前目录中名为 XsdSchemaFile.cs 的 Visual C# 源文件中生成一个有类型的 DataSet:<p ><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>xsd /dataset /language:C# XsdSchemaFile.xsd</ccid_code></pre></td></tr></table></ccid_nobr><p ><B>如何定义业务实体组件</b><p >以下示例显示了如何为 Product 业务实体定义自定义实体类:<p ><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>public class ProductEntity{  // 专用字段,用于保存 Product 实体的状态  private int productID;  private string productName;  private string quantityPerUnit;  private decimal unitPrice;  private short unitsInStock;  private short unitsOnOrder;  private short reorderLevel;  // 公共属性,用于公开 Product 实体的状态  public int ProductID  {    get { return productID; }    set { productID = value; }  }  public string ProductName  {    get { return productName; }    set { productName = value; }  }  public string QuantityPerUnit  {    get { return quantityPerUnit; }    set { quantityPerUnit = value; }  }  public decimal UnitPrice  {    get { return unitPrice; }    set { unitPrice = value; }  }  public short UnitsInStock  {    get { return unitsInStock; }    set { unitsInStock = value; }  }  public short UnitsOnOrder  {    get { return unitsOnOrder; }    set { unitsOnOrder = value; }  }  public short ReorderLevel  {    get { return reorderLevel; }    set { reorderLevel = value; }  }  // 执行本地化处理的方法和属性  public void IncreaseUnitPriceBy(decimal amount)  {    unitPrice += amount;  }  public short UnitsAboveReorderLevel  {    get { return (short)(unitsInStock - reorderLevel); }  }  public string StockStatus  {    get     {       return &quot;库存:&quot;+ unitsInStock + &quot;,订购:&quot; + unitsOnOrder;    }  }}</ccid_code></pre></td></tr></table></ccid_nobr><p align="center"><font color="FF0000" >1</font>23<span class="content01">下一页&gt;&gt;</span></p></p>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-6 18:21 , Processed in 0.062613 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表