目前我有我创建的将允许用户输入的SQL代码,然后将类结果返回到阵列,其中它们可进一步使用一个类。大多数方法使用循环将数据从OleDbDataReader对象传输到数组。处理大量物品时,这可能非常缓慢。OleDbDataReader结果直接阵列
电流法:
Dim SQLdr As OleDbDataReader 'SQL reader
Dim SQLCmd As New OleDbCommand() 'The SQL Command
Dim firstline As Boolean
SQLCmd.Connection = SQLConn 'Sets the Connection to use with the SQL Command
SQLCmd.CommandText = SQLStr 'Sets the SQL String
SQLdr = SQLCmd.ExecuteReader 'Gets Data
再后来..
While (SQLdr.Read)
If firstline = True Then
'fill headers
Do Until j = SQLdr.FieldCount
result(j, i) = SQLdr.GetName(j)
j = j + 1
Loop
firstline = False
j = 0
i = 1
End If
j = 0
Do Until j = SQLdr.FieldCount
ReDim Preserve result(result.GetUpperBound(0), result.GetUpperBound(1) + 1)
If display = True Then
MsgBox(j & ":" & i & SQLdr(j).ToString)
End If
result(j, i) = SQLdr(j).ToString
j = j + 1
Loop
i = i + 1
End While
我想知道是否有一个更直接的方式在那里将结果输出到一个数组..我对不起,但我不知道从哪里开始,如果甚至有可能,或者如果有人曾经尝试过。
我只是想评论说,我希望你检查你的用户输入守卫SQL针对SQL注入。 – Melanie
您可以检查是否可以使用DataTable.Load(IDataReader的)方法。没有阵列,但可能比手动循环更快 – Steve