我要尋找一個在ADO.NET一份HOWTO或某人專家誰可以解釋我如何妥善解決以下情形:插入與ADO.NET每個父多個父行和多個子行中的一個設置
我有一個數據集的兩個DataTable:用於調度數據
- ParentTable(PARENTID,名稱)用戶數據
- ChildTable(PARENTID,ActivityID,...)
表在數據庫級別通過ParentID
鏈接在一起,這是ParentTable
中的標識列。
這兩個表都是綁定到GUI上單獨的DataGridView
的數據。應該在表格之間有一個「1父母/ N孩子」關係,這意味着如果我在ParentTable
(新用戶)中創建新條目,我會在子網格中獲得一個乾淨的DataGrid
,以便爲用戶鍵入日程安排數據。所以我爲每個表設置了兩個DataAdapters
,以便將他們的結果填入DataSet
。我還設置了一個DataRelation
對象,並將它分配給DataSet
以將它們的ParentID
列鏈接起來。另外,當我通過DataGrid
向ChildTable
添加一行時,我使用SetParentRow
來設置父行。
With DAUser
.SelectCommand = New SqlCommand("UsersSelect", conn)
.SelectCommand.CommandType = CommandType.StoredProcedure
.SelectCommand.Parameters.AddWithValue("@UserID", MyID)
.Fill(DSData)
End With
With DAActivity
.SelectCommand = New SqlCommand("ActivitiesSelect", conn)
.SelectCommand.CommandType = CommandType.StoredProcedure
.SelectCommand.Parameters.AddWithValue("@UserID", MyID)
.Fill(DSData)
End With
DSData.Relations.Add(New DataRelation("UserActivity", DSData.Tables(0).Columns("ParentID"), DSData.Tables(1).Columns("ParentID")))
添加一行到ChildTable:
Private Sub DTChildData_TableNewRow(sender As Object, e As System.Data.DataTableNewRowEventArgs) Handles DTChildData.TableNewRow
e.Row.SetParentRow(ParentDataRow)
End Sub
儘管如此,ChildTable
的ParentID
列未從數據庫中檢索時ParentTable
更新標識值填充。
爲什麼?我開始鬆散的頭髮嚴重的金額超過這個問題...
在第二次填充操作之前,會重命名默認表名「Table」,以便第一個表不會被覆蓋。 另外,如果我使用FillSchema而不是填充,那麼數據集根本就沒有填充......奇怪 – Daniel