我知道這些問題已經在這些論壇和互聯網上被多次詢問和回答,但我正在努力將自己的頭圍繞在它周圍。我無法準確理解這些關係如何與SQL數據庫中的主鍵和外鍵一起工作。假設我有一個名爲「Employees」的表,其中名爲「employeeID」的主鍵,然後是名爲「addressID」的主鍵的另一個表名爲「Addresses」。我將在「Addresses」表中創建一個名爲「employeeID」的外鍵,然後創建Employees表和Addresses表之間的關係是否正確?SQL數據庫關係和VB.Net應用程序
我有一個數據庫,有員工,地址,緊急聯繫人等......從我已閱讀和從各種來源理解正確創建。所以在我的應用程序vb.net使用Azure SQL數據庫,我試圖顯示在datagridview說員工和他們的地址。很顯然,datagridview一次只能顯示一張表中的信息,因此我試圖創建一個新的數據集,它將從兩個表中收集信息並在gatagrid視圖中將其顯示爲一個。當datagrid視圖顯示這些信息時,它全部混淆在一起,並且關係不被遵守。對於員工表中的每個條目,它會在地址表中爲每個人列出每個條目的三次。
下面是我使用的數據集的代碼的副本:
Dim connectionstring As String = My.Settings.MacroQualityConnectionString
Dim sqlemp As String = "SELECT * FROM Employee_Names, Addresses"
Dim connection As New SqlConnection(connectionstring)
Dim dataadapter As New SqlDataAdapter(sqlemp, connection)
connection.Open()
dataadapter.Fill(dsemployees, "Employee_Names")
connection.Close()
DataGridView1.DataSource = dsemployees.Tables(0)
我知道這可能是不正確的,但我不知道如何使應用程序的榮譽,在數據庫中的關係?最後,我需要能夠從多個表中收集信息,以正確顯示在datagridview中,但不幸的是,我的大部分其他技能中我的SQL技能都很弱!也許我的大部分問題都回到了設計和建立我的數據庫?任何意見都非常感謝大家,因爲我一直在爲此奮鬥了幾個星期! :(
謝謝大家提前
爲什麼在選擇語句中使用交叉連接而不是內部連接??????? – 2014-11-14 15:47:55
我標記了這個問題,因爲它在另一個地方更好,因爲它詢問服務器中的關係。 – Codexer 2014-11-14 15:48:36
大部分表格看起來應該是Emp表格上的列。一個員工有一個地址,電話等,所以列有點像屬性。 PK/FK關係可能會出現在「部門」 - 而Emp屬於一個部門,而一個部門可以有很多的emps。然後,Emp將有一個FK到Dept表(不是相反的方向) – Plutonix 2014-11-14 15:49:19