所以我的情况是我想从我的数据库中的两个字段填充二维数组。 我在分配一个数值为数据库字段的数组时遇到了问题 第二个是在datagrid中显示数组,我编码了dgv2.Datasource = myArray但它仍然返回一条错误信息。
这是我的代码:
Dim msql As String = "select item_id from detail"
Dim arayT(,) As String
CMD = New MySqlCommand(msql, conn.konek)
Try
Dim res= CMD.ExecuteReader()
While res.Read()
For i As Integer = 0 To x - 1
For j = 0 To y - 1
arayT(i, j) = res.GetString("item_id")
Next j
Next i
End While
Catch ex As Exception
MessageBox.Show("ERROR")
End Try
dgv2.DataSource = arayT
所以我的问题是 首先,如何将数据库中的记录列作为值分配到我的2d数组中? (我仍然不确定我的编码是否正确) 第二,如何将2d数组查看到datagrid,我的意思是将2d数组绑定到datagrid
我的一些要求......请不要让我使用(t)列表或使用LINQ因为我仍然不太熟悉它们。
我在我的代码中做了一些修复,但它没有很好地工作..我的最新截图
答案 0 :(得分:0)
将二维数组设置为datagridview的数据源时会出现什么错误消息?好吧,如果数据源命令给你一个错误,你可以循环并将值分配给datagridview。
'Ensure that the required number of rows are available
If DataGridView.Rows.Count < some2darray.GetUpperBound(0) Then
DataGridView.Rows.Add((some2darray.GetUpperBound(0) + 1) - DataGridView.Rows.Count)
End If
'Also ensure that the required number of columns are available
'Fill up the datagridview with the data from the 2D array
For x = 0 to some2darray.GetUpperBound(0)
For y = 0 to some2darray.GetUpperBound(1)
DataGridView.Item(y, x).Value = some2darray(x, y)
Next
Next
如果您的2Darray没有引用点,并且必须从其他来源获取其值,那么请使用此代码ReDim Preserve some2darray(x, y)
,例如
For x = 0 to rowcountofthesource
For y = 0 to columncountofthesource
ReDim Preserve some2darray(x, y)
'Code here
DataGridView.Item(y, x).Value = some2darray(x, y)
Next
Next
如果您的2Darray一次性从其他来源获取所有数据。然后ReDim将您的2D阵列保留到该源的总行数和列数,例如ReDim Preserve some2darray(totalrowsofthesourcehere, totalcolumnsofthesourcehere)
并在循环外键入它,因为您不需要一次又一次地执行此操作。如果您的数组在使用前为空并且不包含数据,那么您不需要使用ReDim Preserve
,只需使用ReDim some2darray(int, int)
答案 1 :(得分:0)
大家好,我的问题终于明白了,这是我的问题的答案
ReDim Preserve arayT(x, y)
For i = 0 To (x-1)
For j = 0 To (y-1)
hasil.Read()
arayT(i, j) = hasil("kode_brg")
Next j
Next i
原来我不需要使用..
非常感谢Afnan,Neolisk和Emmad已经帮助我回答了我的问题。 :)