2012-10-04 189 views
0

我想使用DataTables來存儲多個「圖層」的數據。某些過程爲我計算平均值,絕對值和百分比。這三個層有着相同的有序行和列,但是這些值會改變。 當我刪除或插入一行時,也必須對其他兩個表進行類似的操作。有人有一個好主意嗎?在DataTables中處理多層數據?

進一步解釋:

Dim absTable as DataTable 
Dim meanTable as DataTable 
Dim percTable as DataTable 
abstable.rows(2).delete 

我怎麼能保證,這個操作是在其他兩個表以及執行?

+0

爲什麼不通過爲每種類型的計算結果添加一個單獨的列將它們全部存儲在同一個表中? –

回答

0

您可能需要使用DataSet而不是多個DataTable。因爲在DataSet中,您可以使用.Tables(Index|TableName)屬性來操縱多個DataTable屬性,以確保您在右表上執行操作。你需要一個更高層次的對象來做你想做的事。

所以,如果你想刪除所需的所有表中的行,只是循環和調用delete方法:

Dim aDataSet as New DataSet 
Dim absTable as New DataTable 
Dim meanTable as New DataTable 
Dim percTable as New DataTable 

aTable.Tables.Add(absTable) aTable.Tables.Add(meanTable) aTable.Tables.Add(percTable) 

For each table as DataTable in aDataSet.Tables 
    table.rows(2).delete 
Next 

你也可以有交叉表引用,以確保或操縱或做任何你想要它。

aDataSet.Tables(0) = aDataSet.Tables(1) 'only if the talbes 0 and 1 have same columns 

希望這是你所要求的。

有關DatsSet的更多詳細信息,請參閱http://msdn.microsoft.com/en-us/library/system.data.dataset.aspx

+0

謝謝,這看起來很有希望。 –