我想通过将当前数据源合并到新数据表,将多个数据表添加到数据源中,而不是每次创建(循环)数据集。将多个数据表(相同模式)添加到当前数据源
这是我的代码:
' Those table are the same but have different data
' Tables() array, it's an example
For Each oTable As System.Data.DataTable In Tables
DisplayResult(oTable, ColumnsAreCreated)
Next
然后我想结果显示在网格:
Private Function DisplayResults(ByVal oTable As System.Data.DataTable, ByRef ColumnsAreCreated As Boolean) As Boolean
If oTable.Rows.Count > 0 Then
Dim compt As Integer = 0
If Not ColumnsAreCreated Then
Dim NewColumn As DevExpress.XtraGrid.Columns.GridColumn
For Each oColumn As DataColumn In oTable.Columns
NewColumn = grdv.Columns.AddField(oColumn.ColumnName)
NewColumn.OptionsColumn.ReadOnly = True
NewColumn.Visible = True
NewColumn.VisibleIndex = compt
compt += 1
Next
ColumnsAreCreated = True
' I want to do something like : grdctrl.DataSource += oTable
grdctrl.DataSource = oTable
grdv.OptionsView.ColumnAutoWidth = False
grdv.BestFitColumns()
End If
End If
Return True
End Function
我不想每次删除当前的数据,我想将网格中的当前数据源与下列数据表一个一个地串联起来。
我不想创建一个数据集,放入数据表,最后提供gridcontrol数据集。
有没有办法做到这一点,而无需创建数据集?
事实上,我已经试过这样做了,但是我询问是否有办法在内存中存储数据表直到读取所有表。事实上,处理gridcontrol数据源而不是创建一个新表并在其中存储数据。 – billybob 2012-08-09 12:43:52
那么事情是,Grid.DataSource商店只有对“数据集”或“列表”的引用等(链接到集合存储的东西)。所以为了将多个记录集放入单个占位符中,您使用“DataSet”或DataTable或List是合乎逻辑的。 我也建议加入SQL,而不是在内存中,因为它更高效。通过这样做,你可以使用“serverMode”东西(延迟加载等) – Marty 2012-08-15 22:43:30