2012-10-04 190 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

谢谢,这看起来很有希望。 –