ADO.NET 数据集中浏览多个相关表 4

  • 来源: 互联网 作者: rocket   2008-03-17/14:34
  •  显示相关记录
      现在您已经有了选定客户的相关记录(存储在数据行数组中),您可以显示它们以便
    与用户进行交互。应用程序将逐一访问 GetChildRows 方法返回的数据行数组中的数据
    ,并将每个相关记录的“订单 ID”作为单独的项添加到列表框中。
      注意:虽然此示例将逐一访问相关数据行数组中的数据,但列表框可能已经使用属性
    窗口,通过 DataSource 属性、DataMember 属性和 ValueMember 属性被绑定到相关的
    记录。
      在列表框中显示相关记录
      在 Solution Explorer(解决方案资源管理器)中,右键单击 Form1 并从快捷菜单中
    选择 View Code(查看代码)。
      在前面步骤中创建的组合框的 SelectedIndexChanged 事件处理程序中,将以下代码
    添加到处理程序中已有代码之下:
      ' Visual Basic
      ' 当更改选定客户时,清除订单列表。
      lbOrders.Items.Clear()
      rtbDetails.Text = ""
      ' 将每个相关订单的订单 ID 添加到列表框中。
      Dim drOrder As DataRow
      For Each drOrder In draOrders
      lbOrders.Items.Add(drOrder("OrderID"))
      Next
      // C#
      // 当更改选定客户时,清除订单列表。
      lbOrders.Items.Clear();
      rtbDetails.Text = "";
      // 将每个相关订单的订单 ID 添加到列表框中。
      foreach(DataRow drOrder in draOrders)
      {
      lbOrders.Items.Add(drOrder["OrderID"]);
      }
      保存项目。
      运行应用程序。
      列表框中将显示订单列表。在组合框中选择另一个客户,订单列表将被更新。
      关闭窗体。
      在三个或更多表中浏览相关记录
      浏览三个或更多表与处理两个表一样简单。要了解如何处理两个以上的表,请将订单
    明细表和产品表添加到 dsNorthwind 数据集中。在列表框中选定一个订单后,该订单的
    详细信息即显示在 RTF 文本框中。
      为了满足约束规则,您需要删除现有的数据关系,将来再重新创建。
      暂时删除 dsNorthwind 数据集中的 DataRelation
      在 Solution Explorer(解决方案资源管理器)中,双击 dsNorthwind.xsd 以在 XM
    L Designer(
    XML 设计器)中打开它。
      选择现有的 CustomersOrders 关系并将其删除。
      保存项目。
      现在您需要将另外两个表添加到现有数据集中,并创建新的 DataRelation 对象以将
    所有表连在一起。
      将订单明细表和产品表添加到 dsNorthwind 数据集中
      在 Solution Explorer(解决方案资源管理器)中,右键单击 Form1 并从快捷菜单中
    选择 View Designer(视图设计器)。
      将“订单明细”表从 Server Explorer(服务器资源管理器)中拖到窗体上。组件栏
    中将显示一个新的数据适配器。
      选择该新的数据适配器并将其 Name 属性设置为 daOrderDetails。
      将“产品”表从 Server Explorer(服务器资源管理器)中拖到窗体上。组件栏中将
    显示一个新的数据适配器。
      选择该新的数据适配器并将其 Name 属性设置为 daProducts。
      新表只是被添加到了窗体上,因此每次添加额外的表时,都必须重新生成数据集。
      重新生成 dsNorthwind 数据集
      从 Data(数据)菜单中,选择 Generate Dataset(生成数据集)。
      提示:将光标移到窗体上即可使用 Data(数据)菜单。
      单击 Existing(现有),然后选择 dsNorthwind 数据集。
      选择所有四个表(客户表、订单表、订单明细表和产品表)。
      清除 Add this dataset to the designer(将此数据集添加到设计器)复选框,然后
    单击 OK(确定)。将生成带有附加表的数据集。
      注意:如果出现一个对话框,其中说明“The file has been modified outside of
    the source editor. Do you want to reload it?”(文件已在源编辑器之外被修改。
    是否要重新加载?),请单击 Yes(是)。
      请记住,生成数据集并不能自动创建数据集中各表之间的关系。

    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多