在声明多维数组时获取“System.OutOfMemoryException”

时间:2014-09-05 15:31:55

标签: vb.net

我有一个要求,我需要将数据从数据表复制到多维数组,但当我声明多维数组时,我得到内存错误。请提出解决方案。

Dim my_array(number, number, number, number, number, number, number, number, number, number, number) As String

其中number是来自数据库的行数,即SELECT COUNT(COL.NAME) FROM TABLE_NAME

如果我使用:

Dim my_array(number, number, number, number, number, number, number, number, number) As String

没有错误。

1 个答案:

答案 0 :(得分:0)

在阅读文档时,您似乎已跳过this section。如果我理解正确,您正在尝试创建x,y数组。我建议您使用多维数组,而不是使用锯齿状数组。

以下是我创建10行3列的示例:

Dim tableArray As String(,) = New String(10, 3) {}

For rowIndex As Integer = 0 To 9 '0,1,2,3,4,5,6,7,8,9 = 10 rows
    For columnIndex As Integer = 0 To 2 '0,1,2 = 3 columns
        tableArray(rowIndex, columnIndex) = String.Format("Row={0}, Column={1}", rowIndex, columnIndex)
    Next
Next

但是,更好的方法是简单地copy数据表。

Dim table2 As DataTable = table1.Copy()

如果您需要过滤表格,请使用表格的默认data view

table1.DefaultView.RowFilter = "Name LIKE '*Smith*'"
Dim table2 As DataTable = table1.DefaultView.ToTable()

或创建新的数据视图:

Dim view As New DataView(table1)
view.RowFilter = "Name LIKE '*Smith*'"
Dim table2 As DataTable = view.ToTable()