我想使用DataTables来存储多个“层”数据。 一些程序为我计算平均值,绝对值和百分比。 Theese三层具有完全相同的有序行和列,但值会发生变化。 当我删除或插入行时,也必须对其他两个表进行类似的操作。有人有个好主意吗?
进一步解释:
Dim absTable as DataTable
Dim meanTable as DataTable
Dim percTable as DataTable
abstable.rows(2).delete
我如何保证此操作也在其他两个表上执行?
答案 0 :(得分:0)
您可能希望使用DataSet
而不是多个DataTable
。因为,在DataSet
中,您可以使用DataTable
属性操纵多个.Tables(Index|TableName)
,以确保您在正确的表格上执行操作。你需要一个更高层次的对象来做你想做的事。
因此,如果要删除所有表中的行,只需循环所需的表并调用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。