建立資料集之間的關聯性- Visual Studio
文章推薦指數: 80 %
如需有關資料集資料表中更新的詳細資訊,請參閱將資料儲存回資料庫。
僅限條件約束關聯. 當您建立DataRelation 物件時,您可以選擇指定關聯只用來強制執行 ...
跳到主要內容
已不再支援此瀏覽器。
請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。
下載MicrosoftEdge
其他資訊
目錄
結束焦點模式
儲存
編輯
共用
Twitter
LinkedIn
Facebook
電子郵件
WeChat
目錄
建立資料集之間的關聯性
09/14/2021
g
o
O
i
本文內容
包含相關資料表的資料集會使用DataRelation物件來代表資料表之間的父子式關聯性,並傳回彼此相關的記錄。
使用[資料來源設定]Wizard或DataSet設計工具,將相關的資料表加入資料集,DataRelation就會為您建立及設定物件。
DataRelation物件會執行兩個函式:
它可提供與您正在使用之記錄相關的記錄。
如果您是在父記錄(GetChildRows)和父記錄(如果您使用()的子記錄),則會提供子記錄GetParentRow。
它可以強制執行參考完整性的條件約束,例如刪除父記錄時,刪除相關的子記錄。
請務必瞭解真正的聯結和物件的功能之間的差異DataRelation。
在真正的聯結中,記錄取自父資料表和子資料工作表,並放入單一的一般記錄集內。
當您使用DataRelation物件時,不會建立新的記錄集。
相反地,DataRelation會追蹤資料表之間的關聯性,並讓父記錄和子記錄保持同步。
DataRelation物件和條件約束
DataRelation物件也用來建立和強制執行下列條件約束:
唯一的條件約束,可確保資料表中的資料行不包含重複專案。
Foreignkey條件約束,可用來維護資料集中父資料表和子資料工作表之間的參考完整性。
您在物件中指定的條件約束DataRelation是由自動建立適當的物件或設定屬性所執行。
如果您使用物件來建立外鍵條件約束DataRelation,則會將類別的實例ForeignKeyConstraint加入至DataRelation物件的ChildKeyConstraint屬性。
唯一的條件約束是藉由直接將Unique資料行的屬性設為true或,將類別的實例加入至UniqueConstraintDataRelation物件的ParentKeyConstraint屬性來執行。
如需在資料集中暫停條件約束的詳細資訊,請參閱在填滿資料集時關閉條件約束。
參考完整性規則
您可以在外鍵條件約束中指定套用於三個點的參考完整性規則:
當父記錄更新時
當父記錄刪除時
當已接受或拒絕變更時
您可以建立的規則會在列舉中指定Rule,而且會列在下表中。
Foreignkey條件約束規則
動作
Cascade
對父記錄進行的變更(更新或刪除)也是在子資料工作表的相關記錄中進行。
SetNull
子記錄不會被刪除,但子記錄中的外鍵會設定為DBNull。
使用此設定時,子記錄可以保留為「孤立」,也就是它們與父記錄沒有關聯性。
注意:使用此規則可能會導致子資料工作表中的資料無效。
SetDefault
相關子記錄中的外鍵會設定為其預設值(由資料行的DefaultValue屬性)所建立。
None
相關的子記錄不會進行任何變更。
使用此設定時,子記錄可包含無效父記錄的參考。
如需有關資料集資料表中更新的詳細資訊,請參閱將資料儲存回資料庫。
僅限條件約束關聯
當您建立DataRelation物件時,您可以選擇指定關聯只用來強制執行條件約束,也就是它也不會用來存取相關記錄。
您可以使用此選項來產生稍微提高效率的資料集,而且其中包含的方法比具有相關記錄功能的方法少。
不過,您將無法存取相關記錄。
例如,僅限條件約束關聯可防止您刪除仍有子記錄的父記錄,而且您無法透過父系存取子記錄。
在DataSet設計工具中手動建立資料關聯
當您使用VisualStudio中的資料設計工具建立資料表時,如果可從資料來源收集資訊,就會自動建立關聯性。
如果您從[工具箱]的[資料集]索引標籤手動加入資料表,您可能必須手動建立關聯性。
如需以程式設計方式建立物件的詳細資訊DataRelation,請參閱新增datarelation。
資料表之間的關聯性會顯示為DataSet設計工具中的行,並具有描述關聯性之一對多層面的索引鍵和無限大符號。
根據預設,關聯性的名稱不會出現在設計介面上。
注意
在本文的某些VisualStudio使用者介面項目中,您的電腦可能會顯示不同的名稱或位置。
您使用的可能是不同版本的VisualStudio或不同的環境設定。
如需詳細資訊,請參閱將IDE個人化。
若要建立兩個數據表之間的關聯性
在[DataSet設計工具]中開啟資料集。
如需詳細資訊,請參閱逐步解說:在DataSet設計工具中建立資料集。
將關係物件從[資料集工具箱]拖曳至關聯性中的子資料工作表。
[關聯]對話方塊隨即開啟,並以您拖曳關聯物件的資料表填入子資料工作表方塊。
從[父資料表]方塊中選取父資料表。
父資料表包含一對多關聯性的「一」端記錄。
確認[子資料工作表]方塊中是否顯示正確的子資料工作表。
子資料工作表包含一對多關聯性的「多」端記錄。
在[名稱]方塊中輸入關聯性的名稱,或保留預設名稱(以選取的資料表為基礎)。
這是程式碼中的實際DataRelation物件名稱。
在[索引鍵資料行]和[外鍵資料行]清單中選取聯結資料表的資料行。
選取是否要建立關聯性、條件約束或兩者。
選取或清除[嵌套關聯]方塊。
選取此選項會將Nested屬性設定為true,並在資料列寫入為XML資料或與同步處理時,使關聯的子資料列在父資料行中嵌套XmlDataDocument。
Formoreinformation,seeNestingDataRelations.
設定當您對這些資料表中的記錄進行變更時,要強制執行的規則。
如需詳細資訊,請參閱Rule。
按一下[確定]建立關聯性。
這兩個數據表的設計工具上會出現關聯線。
若要在DataSet設計工具中顯示關聯名稱
在[DataSet設計工具]中開啟資料集。
如需詳細資訊,請參閱逐步解說:在DataSet設計工具中建立資料集。
從[資料]功能表中,選取[顯示關聯性標籤]命令以顯示關聯名稱。
清除該命令以隱藏關聯名稱。
另請參閱
在VisualStudio中建立和設定資料集
此頁面有所助益嗎?
Yes
No
還有其他意見反應嗎?
系統會將意見反應傳送給Microsoft:按下[提交]按鈕,您的意見反應將用來改善Microsoft產品和服務。
隱私權原則。
跳過
送出
謝謝。
此頁面有所助益嗎?
Yes
No
還有其他意見反應嗎?
系統會將意見反應傳送給Microsoft:按下[提交]按鈕,您的意見反應將用來改善Microsoft產品和服務。
隱私權原則。
跳過
送出
謝謝。
本文內容
延伸文章資訊
- 1逐步解說:跨關聯性查詢(C#) - ADO.NET
本逐步解說示範如何使用LINQ to SQL 關聯來表示資料庫中的外鍵關聯性。 注意. 在下列指示的某些Visual Studio 使用者介面項目中,您的電腦可能會顯示 ...
- 2使用C# 設計您的第一個關聯式資料庫- Azure SQL Database
Azure SQL Database 是Microsoft Cloud (Azure) 中的關聯式資料庫即服務(DBaaS)。 在本教學課程裡,您將了解如何搭配使用Visual Studio 與...
- 3作法:對應資料庫關聯性- ADO.NET
如果您使用Visual Studio,可以使用物件關聯式設計工具來建立類別之間的關聯。 C# 複製. [Table(Name = ...
- 4將資料儲存至資料庫(多個資料表) - Visual Studio (Windows)
... 兩個關聯資料表的資料,並示範如何編輯記錄,以及將變更儲存回資料庫。 ... 本逐步解說使用SQL Server Express LocalDB 和Northwind 範例資料庫。
- 5【C#】連接資料庫實作(MSSQL) | 阿猩的程式蛋糕店 - 點部落
這篇要介紹關聯性資料庫,筆者選用MSSQL作為後續工作使用,筆者試著用簡單的概念來說明,順便作個工作紀錄囉。內容範圍包含: SQL、T-SQL、DBMS、RDB.