.net 将庞大的数据表等分为多个

.net 将庞大的数据表等分为多个,.net,vb.net,datatable,.net,Vb.net,Datatable,我有一个大约156K的数据表,我想制作6个数据表,并将记录分成每个数据表,比如表1将保存0到30k的行,表2将保存30k1到60k的行,以此类推 大表的数字列从0到14排列 有没有关于如何做到这一点而不循环的建议 在数据库级别执行吗 从您的表中选择到其他表中,然后删除原始表。您可以使用LINQ的: 测试数据: Dim tbl1 = New DataTable tbl1.Columns.Add("ID", GetType(Int32)) tbl1.Columns.Add("Text", GetTy

我有一个大约156K的数据表,我想制作6个数据表,并将记录分成每个数据表,比如表1将保存0到30k的行,表2将保存30k1到60k的行,以此类推

大表的数字列从0到14排列


有没有关于如何做到这一点而不循环的建议

在数据库级别执行吗

从您的表中选择到其他表中,然后删除原始表。

您可以使用LINQ的:

测试数据:

Dim tbl1 = New DataTable
tbl1.Columns.Add("ID", GetType(Int32))
tbl1.Columns.Add("Text", GetType(String))
For rowIndex As Int32 = 1 To 156000
    tbl1.Rows.Add(rowIndex, "Row " & rowIndex)
Next
拆分为多个表:

Dim tableCount = 6 
Dim divisor = tbl1.Rows.Count / tableCount ' needed to identify each group '
Dim tables() As DataTable = tbl1.AsEnumerable().
        Select(Function(r, i) New With {.Row = r, .Index = i}).
        GroupBy(Function(x) Math.Floor(x.Index / divisor)).
        Select(Function(g) g.Select(Function(x) x.Row).CopyToDataTable()).
        ToArray()

请注意,由于156000/6=26000,这将把它们分成26000行的表。

问题是我不知道如何从第0行到第30k行以及从第60K行到第90k行进行选择,顶部按钮将无法完成我要将其分成6个数据表的任务谢谢,这就是我想要的:)但是当这些行不能被6分开时,比如156003行,这能管理它吗?试过了,它真的很完美,谢谢again@user1570048字体我很高兴能帮上忙。请注意,Linq也使用循环,尽管它看起来不太多。我知道,但我的意思是不使用循环:D