亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ADO.NET 數據集中瀏覽多個相關表 5

2019-11-18 19:11:46
字體:
來源:轉載
供稿:網友

創建關系
  在 Solution Explorer(解決方案資源管理器)中,雙擊 dsNorthwind.xsd 文件。文
件將在 xml Designer(XML 設計器)中打開。
  從工具欄的 XML Schema(XML 架構)選項卡中,將 Relation(關系)拖到訂單表上
。
  在 Edit Relation(編輯關系)對話框中,設置以下屬性:
  元素 設置
  Name CustomersOrders
  Parent Customers
  Child Orders
  Key Fields CustomerID
  Foreign Key Fields CustomerID
  單擊 OK(確定)以創建關系并關閉對話框。
  從工具欄的 XML Schema(XML 架構)選項卡中,將 Relation(關系)拖到訂單明細
表上。
  在 Edit Relation(編輯關系)對話框中,設置以下屬性:
  元素 設置
  Name OrdersOrderDetails
  Parent Orders
  Child OrderDetails
  Key Fields OrderID
  Foreign Key Fields OrderID
  單擊 OK(確定)以創建關系并關閉對話框。
  從工具欄的 XML Schema(XML 架構)選項卡中,將 Relation(關系)拖到訂單明細
表上。
  在 Edit Relation(編輯關系)對話框中,設置以下屬性:
  元素 設置
  Name PRoductsOrderDetails
  Parent Products
  Child OrderDetails
  Key Fields ProductID
  Foreign Key Fields ProductID
  單擊 OK(確定)以創建關系并關閉對話框。
  保存項目。
  訂單明細表和產品表已被添加到數據集中,但是您仍需要添加代碼,以便在運行時用
數據來填充它們。
  用數據填充表
  在 Solution Explorer(解決方案資源管理器)中,右鍵單擊 Form1 并從快捷菜單中
選擇 View Code(查看代碼)。
  在 Form1_Load 事件處理程序中,將以下代碼添加到注釋“用數據填充表”與 daOrd
ers.Fill(dsNorthwind1) 行之間:
  ' Visual Basic
  daOrderDetails.Fill(dsNorthwind1)
  daProducts.Fill(dsNorthwind1)
  // C#
  daOrderDetails.Fill(dsNorthwind1);
  daProducts.Fill(dsNorthwind1);
  用數據填充 RTF 文本框
  現在您要為項目添加代碼,以便在列表框中選定某個訂單時,可以在 RTF 文本框中顯
示所有訂單明細。
  以下代碼將基于列表框中的選定訂單調用 GetChildRows 方法。訂單明細表中的所有
相關記錄都將分配給名為 draOrderDetails 的數據行數組。每個數據行的內容將顯示在
RTF 文本框中。
  注意:請注意嵌套的 For Each 循環是如何首先選取一個數據行,然后在該數據行的
所有列中循環以訪問整個相關記錄的。
  設置 RTF 文本框以顯示所有訂單明細
  在 Solution Explorer(解決方案資源管理器)中,右鍵單擊 Form1 并從快捷菜單中
選擇 View Designer(視圖設計器)。
  雙擊列表框為列表框 lbOrders 的 SelectedIndexChanged 事件創建事件處理程序。

  添加以下代碼:
  ' Visual Basic
  Private Sub lbOrders_SelectedIndexChanged _
  (ByVal sender As System.Object, ByVal e As System.EventArgs) _
  Handles lbOrders.SelectedIndexChanged
  ' 選擇新訂單時,清除 RTF 文本框。
  rtbDetails.Clear()
  ' 聲明一個用來保存選定的訂單 ID 的整數。
  Dim SelectedOrderID As Integer
  ' 將選定的項目設置為整數。
  SelectedOrderID = CType(lbOrders.SelectedItem, Integer)
  ' 聲明一個用來保存選定訂單的記錄的數據行。
  Dim drSelectedOrder As DataRow
  drSelectedOrder = _
  DsNorthwind1.Orders.FindByOrderID(SelectedOrderID)
  ' 聲明一個用來保存相關記錄的數據行數組。
  Dim draOrderDetails() As DataRow
  draOrderDetails = _
  drSelectedOrder.GetChildRows("OrdersOrderDetails")
  Dim details As String = ""
  Dim drDetails As DataRow
  Dim dcDetails As DataColumn
  For Each drDetails In draOrderDetails
  For Each dcDetails In drDetails.Table.Columns
  details &= dcDetails.ColumnName & ": "
  details &= drDetails(dcDetails).ToString()
  details &= ControlChars.CrLf
  Next
  details &= ControlChars.CrLf
  Next
  rtbDetails.Text = details
  End Sub
  // C#
  private void lbOrders_SelectedIndexChanged
  (object sender, System.EventArgs e)
  {
  // 選擇新訂單時,清除 RTF 文本框。
  rtbDetails.Clear();
  // 聲明一個用來保存選定的訂單 ID 的整數。
  int SelectedOrderID;
  // 將選定的項目設置為整數。
  SelectedOrderID = (int)lbOrders.SelectedItem;
  // 聲明一個用來保存選定訂單的記錄的數據行。
  DataRow drSelectedOrder;
  drSelectedOrder =
  dsNorthwind1.Orders.FindByOrderID(SelectedOrderID);
  // 聲明一個用來保存相關記錄的數據行數組。
  DataRow[] draOrderDetails;
  draOrderDetails =
  drSelectedOrder.GetChildRows("OrdersOrderDetails");
  string details = "";
  foreach(DataRow drDetails in draOrderDetails)
  {
  foreach(DataColumn dcDetails in drDetails.Table.Columns)
  {
  details += dcDetails.ColumnName + ": ";
  details += drDetails[dcDetails].ToString() + "/n";
  }
  details += "/n";
  }
  rtbDetails.Text = details;
  }
  保存項目。
  運行應用程序。
  在列表框中選擇一個訂單,其訂單明細將顯示在 RTF 文本框中。
  在列表框中選擇另一個訂單。RTF 文本框中的訂單明細將被更新。
  瀏覽多對多關系
  構成多對多關系的表通常通過保證數據完整性的第三方表進行連接。在羅斯文數據庫
中,訂單表和產品表就是這樣相關的。因為有些訂單可能包含很多產品,而有些產品又
在很多訂單中銷售。這兩個表是通過訂單明細表連接的,訂單明細表利用這兩個表中的
列建立自己特定的列,并使這些數據相關。瀏覽構成多對多關系的三個表與處理一對多
關系的表并沒有太大區別。
  要瀏覽多對多關系,您可以基于訂單明細表中的單個記錄來訪問產品,這將返回產品
名稱并顯示在訂單明細中。
  您可以使用 GetParentRow 方法從產品表中訪問產品名稱。調用 GetParentRow 方法
將返回單個數據行,而調用 GetChildRows 方法將返回數據行數組(如上例所示)。
  從訂單明細記錄中獲取產品名稱
  在 Solution Explorer(解決方案資源管理器)中,右鍵單擊 Form1 并從快捷菜單中
選擇 View Code(查看代碼)。
  在列表框 (lbOrders) 的 SelectedIndexChanged 事件處理程序中,將以下代碼添加
到 For Each 行之間:
  ' Visual Basic
  details &= "產品名稱: " & _
  CType(drDetails.GetParentRow("ProductsOrderDetails") _
  ("ProductName"), String) & ControlChars.CrLf
  // C#
  details += "產品名稱: " +
  drDetails.GetParentRow("ProductsOrderDetails")["ProductName"]
  + "/n";
  保存項目。
  運行應用程序。
  在列表框中選擇一個訂單,
  RTF 文本框中將顯示產品名稱和詳細信息?,F在窗體中顯示來自所有四個表的相關數
據。
  圖 2:顯示產品名稱和訂單明細的窗體
  在列表框中選擇另一個訂單。RTF 文本框中的訂單明細將被更新。
  關閉窗體。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线www| 亚洲网站在线观看| 国产精品吊钟奶在线| 亚洲福利影片在线| 久久手机精品视频| 日韩激情视频在线| 91禁外国网站| 色婷婷综合成人av| 青青草原成人在线视频| 日韩视频欧美视频| 日韩av在线网| 欧美日韩高清区| 国产精品一区电影| 国产亚洲欧洲高清一区| 欧洲亚洲妇女av| 日本成人在线视频网址| 精品激情国产视频| 成人黄色免费网站在线观看| 亚洲美女福利视频网站| 88xx成人精品| 一区二区国产精品视频| www.日本久久久久com.| 日韩中文字幕亚洲| 91沈先生在线观看| 亚洲午夜av久久乱码| 国产精品吊钟奶在线| 韩国美女主播一区| 亚洲天堂av电影| 国产噜噜噜噜久久久久久久久| 欧美中文字幕在线播放| 中文字幕亚洲精品| 中文字幕在线看视频国产欧美在线看完整| 国产在线视频91| 亚洲一级黄色av| 一区二区三区四区视频| 欧美最顶级丰满的aⅴ艳星| 91网站在线免费观看| 亚洲精品欧美一区二区三区| 日韩免费看的电影电视剧大全| 欧美成人精品不卡视频在线观看| 午夜欧美大片免费观看| 欧美激情二区三区| 性欧美办公室18xxxxhd| 97精品国产aⅴ7777| 日韩电影免费在线观看中文字幕| 亚洲精品一区久久久久久| 精品国内亚洲在观看18黄| 欧美日韩综合视频| 国产精品视频资源| 久久6免费高清热精品| 久久99久久久久久久噜噜| 成人日韩av在线| 日本高清视频一区| 日韩**中文字幕毛片| 国产精品网红福利| 最近2019中文字幕大全第二页| 亚洲人成网站999久久久综合| 久久99热这里只有精品国产| 国产一区二区三区在线观看视频| 国产成人精品久久久| 国产精品久久久精品| 91嫩草在线视频| 久热精品在线视频| 青青草国产精品一区二区| 国产精品女主播视频| 久久伊人精品一区二区三区| 亚洲精品色婷婷福利天堂| 成人性生交大片免费看小说| 欧美性猛交99久久久久99按摩| 日韩欧美在线视频免费观看| 亚洲成在人线av| 91欧美精品午夜性色福利在线| 亚洲精品国产精品乱码不99按摩| 久久久久久久国产精品视频| 欧美大成色www永久网站婷| 精品久久国产精品| 亚洲精品日产aⅴ| 一本色道久久综合亚洲精品小说| 国产精品www色诱视频| 国产精品中文字幕久久久| 国产精品爽爽ⅴa在线观看| 日韩国产欧美精品在线| 亚洲综合一区二区不卡| 国产成人福利网站| 97国产成人精品视频| 国产成人自拍视频在线观看| 日韩激情片免费| 中文字幕日韩综合av| 国产成人亚洲精品| 亚洲高清色综合| 亚洲一区二区日本| 亚洲尤物视频网| 国产精品久久久久久网站| 亚洲欧美国产精品| 午夜精品久久久久久久男人的天堂| 欧美日韩精品在线视频| 日韩中文字幕在线视频播放| 亚洲国产精品嫩草影院久久| 成人久久久久久| 深夜福利一区二区| 91最新在线免费观看| 日韩av影片在线观看| 狠狠色狠狠色综合日日五| 久久久久国产精品免费| 日韩欧美一区视频| 国产精品成人免费视频| 午夜精品福利电影| 91地址最新发布| 亚洲免费视频在线观看| 日韩av在线导航| 欧美高跟鞋交xxxxxhd| 久久久国产影院| 成人有码在线视频| 国产精品第1页| 97精品在线视频| 在线成人中文字幕| 久久大大胆人体| 久久国产精品久久国产精品| 91精品国产综合久久久久久蜜臀| 国产大片精品免费永久看nba| 日韩中文在线视频| 久久久精品久久久| 欧美国产日韩在线| 2020国产精品视频| 国产精品丝袜视频| 亚洲第一精品自拍| 国产精品第一页在线| 久久久亚洲国产| 国产精品久久久久久婷婷天堂| 午夜精品一区二区三区在线播放| 亚洲成人久久久| 色老头一区二区三区在线观看| 久久亚洲精品视频| 亚洲性无码av在线| 亚洲综合视频1区| 亚洲精品美女久久久久| 精品视频久久久久久久| 高清在线视频日韩欧美| 欧美亚洲视频在线看网址| 亚洲伊人一本大道中文字幕| 欧美小视频在线观看| 日本三级韩国三级久久| 国语自产精品视频在线看一大j8| 欧美一性一乱一交一视频| 热99精品里视频精品| 欧美中文字幕精品| 成人免费xxxxx在线观看| 国产精品成人va在线观看| 国产精品美女视频网站| 国产精品嫩草影院久久久| 欧美另类69精品久久久久9999| 自拍偷拍亚洲区| 欧洲成人在线观看| 国产亚洲欧美日韩一区二区| 国产精品久久久久77777| 亚洲国产欧美一区二区丝袜黑人| 国产精品v片在线观看不卡| 91亚洲va在线va天堂va国| 国产精品18久久久久久首页狼| 国产精品久久久久久亚洲影视| 日韩电影免费在线观看中文字幕| 欧美成人免费小视频| 国产精品劲爆视频| 中文字幕日韩在线观看|