| 网站首页 | 硬件维修 | 应用学院 | 网络组建 | 网站制作 | 菜鸟黑客 | 编程之道 | 数码大全 | 娱乐休闲 | 软件下载 | 在线视频 | 请您留言 | 技术论坛 | 
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
  • ASP.NET中在线用户统计

  • 用ASP.NET开发Web服务的五则…

  • 带你走进ASP.NET(4)

  • 带你走进ASP.NET(3)

  • 带你走进ASP.NET(2)

  • 带你走进ASP.NET(1)

  • 在 ADO.NET 数据集中浏览多个…

  • 在 ADO.NET 数据集中浏览多个…

  • 在 ADO.NET 数据集中浏览多个…

  • 在 ADO.NET 数据集中浏览多个…

  • Q
    您现在的位置: 我是IT人 >> 编程之道 >> .NET >> 编程文章正文
    [图文]在 ADO.NET 数据集中浏览多个相关表(3)       
    在 ADO.NET 数据集中浏览多个相关表(3)
    作者:小秦 文章来源:转载 点击数: 更新时间:2005-3-13
    [ 字体:缩小 正常 放大 | 双击自动滚屏 ]
    请选择合适的字体颜色:
         显示数据
      此应用程序使用组合框、列表框和 RTF 文本框来选择和显示数据。
      
      添加选择和显示数据的控件
      
      在 Solution Explorer(解决方案资源管理器)中,右键单击 Form1(.cs 或 .vb,取决于应用程序的语言),然后从快捷菜单中选择 View Designer(视图设计器)。
      在窗体的左半部,添加一个 ListBox 控件,并将其 Name 属性设置为 lbOrders。
      在窗体的右半部,添加一个 RichTextBox 控件,并将其 Name 属性设置为 rtbDetails。
      在列表框的上方,添加一个 ComboBox 控件,并将其 Name 属性设置为 cbCustomers。
      保存项目。
      
      
      图 1:建议的窗体控件布局
      
      现在,可以开始向应用程序添加功能了。
      
      设置显示公司名称的组合框
      
      选择组合框 (cbCustomers) 并设置以下属性: 属性 设置
      DataSource DsNorthwind1
      DisplayMember Customers.CompanyName
      ValueMember Customers.CustomerID
      
      用数据填充表
      要用数据填充表,必须为应用程序添加代码。
      
      在数据集 (dsNorthwind1) 中的客户表和订单表中填充数据
      
      双击窗体上的一块空白区域,为 Form1_Load 事件创建事件处理程序。
      添加以下代码:
      
      ' Visual Basic
      Private Sub Form1_Load(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles MyBase.Load
      ' 关闭数据集中的约束。
      DsNorthwind1.EnforceConstraints = False
      ' 用数据填充表。
      daOrders.Fill(DsNorthwind1)
      daCustomers.Fill(DsNorthwind1)
      
      ' 重新开启约束。
      DsNorthwind1.EnforceConstraints = True
      End Sub
      
      // C#
      private void Form1_Load(object sender, System.EventArgs e)
      {
      // 关闭数据集中的约束。
      dsNorthwind1.EnforceConstraints = false;
      
      // 用数据填充表。
      daOrders.Fill(dsNorthwind1);
      daCustomers.Fill(dsNorthwind1);
      
      // 重新开启约束。
      dsNorthwind1.EnforceConstraints = true;
      }
      
      
      
      保存项目。
      按 F5 键运行该应用程序。现在组合框中包含一个公司名称列表。
      关闭窗体。
      在两个表中浏览相关记录
      这里简要介绍一下如何在数据集中构成一对多关系的两个表之间访问数据。在选择一个数据行之后,可以通过调用 GetChildRows 或 GetParentRow 方法并向该数据行传递适当的数据关系来返回其相关记录。
      
      注意:GetChildRows 方法将以 DataRow 对象数组的形式返回数据,而 GetParentRow 方法只返回一个单个的数据行。
      要演示这一功能,需要给应用程序添加一些代码,以返回组合框中选定客户的所有订单(子行)。更改组合框中的选定客户会引发 ComboBox.SelectedIndexChanged 事件,列表框中将填充该选定客户的每个订单的订单 ID。
      
      您可以根据组合框中选定的客户,调用 GetChildRows 方法。订单表中的所有相关记录都将分配给名为 draOrders 的数据行数组。
      
      注意:下一节将添加在列表框中显示相关订单列表的功能。为确认数组中确实包含相关的记录,数组的长度(即选定客户的订单总数)将显示为窗体的标题。
      创建获取选定客户的订单的事件处理程序
      
      在 Solution Explorer(解决方案资源管理器)中,右键单击 Form1 并从快捷菜单中选择 View Designer(视图设计器)。
      双击组合框为 SelectedIndexChanged 事件创建事件处理程序。
      添加以下代码:
      
      ' Visual Basic
      Private Sub cbCustomers_SelectedIndexChanged _
      (ByVal sender As System.Object, ByVal e As System.EventArgs) _
      Handles cbCustomers.SelectedIndexChanged
      ' 声明一个用来保存选定客户的客户 ID 的字符串。
      Dim SelectedCustomerID As String
      SelectedCustomerID = cbCustomers.SelectedValue.ToString()
      ' 声明一个用来保存选定客户的记录的数据行。
      Dim drSelectedCustomer As DataRow
      drSelectedCustomer = _
      DsNorthwind1.Customers.FindByCustomerID _
      (SelectedCustomerID)
      ' 声明一个用来保存相关记录的数据行数组。
      Dim draOrders As DataRow()
      draOrders = drSelectedCustomer.GetChildRows("CustomersOrders")
      ' 在窗体标题中显示数组的长度(订单数)
      ' 和客户 ID。
      Me.Text = draOrders.Length.ToString() & " 订单所有者 " & _
      SelectedCustomerID
      End Sub
      
      // C#
      private void cbCustomers_SelectedIndexChanged
      (object sender, System.EventArgs e)
      {
      // 声明一个用来保存选定客户的客户 ID 的字符串。
      String SelectedCustomerID;
      SelectedCustomerID = cbCustomers.SelectedValue.ToString();
      
      // 声明一个用来保存选定客户的记录的数据行。
      DataRow drSelectedCustomer;
      drSelectedCustomer =
      dsNorthwind1.Customers.FindByCustomerID(SelectedCustomerID);
      
      // 声明一个用来保存相关记录的数据行数组。
      DataRow[] draOrders;
      draOrders = drSelectedCustomer.GetChildRows("CustomersOrders");
      
      // 在窗体标题中显示数组的长度(订单数)
      // 和客户 ID。
      this.Text = draOrders.Length.ToString() +
      " 订单所有者 " + SelectedCustomerID;
      }
      
      
      
      保存项目。
      运行应用程序。
      选择另一个客户,并检查窗体标题。将显示选定客户的订单总数及其客户 ID。
      
      关闭窗体。
    编程文章录入:小秦    责任编辑:小秦 
  • 上一篇编程文章:

  • 下一篇编程文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 关于我们 | 友情链接 | 版权申明 |