分析ADO.NET屬性技巧與問題
你將使用ADO.NET屬性的對(duì)象與數(shù)據(jù)源進(jìn)行交互。ADO.NET屬性管理可以與據(jù)源進(jìn)行連接。ADO.NET屬性允許你與數(shù)據(jù)源進(jìn)行檢索,使用DataSet并實(shí)現(xiàn)能進(jìn)行讀取或者寫入數(shù)據(jù)源的SqlDataAdapter。
創(chuàng)建 DataRelation 所需的參數(shù)是所創(chuàng)建的 DataRelation 的名稱以及對(duì)用作關(guān)系中父列和子列的那些列的一個(gè)或多個(gè) DataColumn 引用的數(shù)組,ADO.NET屬性 當(dāng)創(chuàng)建 DataRelation 后,可以使用它在多個(gè)表之間導(dǎo)航和檢索值。
默認(rèn)情況下,向 DataSet 中添加 DataRelation 會(huì)將一個(gè) UniqueConstraint 添加到父表中并將一個(gè) ForeignKeyConstraint 添加到子表中。ADO.NET屬性有關(guān)這些默認(rèn)約束的更多信息,請(qǐng)參見數(shù)據(jù)表約束 (ADO.NET)。#t#
以下代碼示例使用 DataSet 中的兩個(gè) DataTable 對(duì)象來創(chuàng)建一個(gè) DataRelation。 每個(gè) DataTable 包含一個(gè)名為 CustID 的列,它用作兩個(gè) DataTable 對(duì)象之間的鏈接。 該示例將單個(gè) DataRelation 添加到 DataSet 的 Relations 集合中,ADO.NET屬性該示例中的第一個(gè)參數(shù)指定所創(chuàng)建的 DataRelation 的名稱。 第二個(gè)參數(shù)設(shè)置父 DataColumn,第三個(gè)參數(shù)設(shè)置子 DataColumn。
- SqlCommandBuilder sqlCommandBuilder1 = new SqlCommandBuilder ( sqlDataAdapter1 ) ;
- //以sqlDataAdapter1為參數(shù)來初始化SqlCommandBuilder實(shí)例
- dsDataSet1.Tables["Customers"].Rows[0].Delete ( ) ;
- //刪除DataSet中刪除數(shù)據(jù)表Customers中第一行數(shù)據(jù)
- sqlDataAdapter1.Update ( dsDataSet1 ,"Customers" ) ;
- //調(diào)用Update方法,以DataSet中的數(shù)據(jù)更新從數(shù)據(jù)庫
- dsDataSet1.Tables["Customers"].AcceptChanges ( ) ;
DataRelation 也具有 Nested 屬性,如果該屬性設(shè)置為 true,則來自子表的行會(huì)在使用 WriteXml 以 XML 元素形式編寫時(shí)嵌套在來自父表的關(guān)聯(lián)行中。 有關(guān)更多信息,請(qǐng)參見在數(shù)據(jù)集中使用 XML (ADO.NET屬性)。