Прошу прощения за вопрос. Мне нужно получить содержимое n-ой строки l-ой ячейки набора данных Reader. Поискав в свойствах понял, что так нельзя. Поэтому решил поместить содержимое в массив. Но опять столкнулся с проблемой. Получилось только следующим образом:
- Код: Выделить всё
Dim conStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\DataGridView.mdb;"
Dim selStr As String = "SELECT * FROM vw_DataGridView"
Dim ListOfRows As New ArrayList
Dim Reader As OleDbDataReader
Using OLEDBCon As New OleDbConnection(conStr)
OLEDBCon.Open()
Using OleDbCom As New OleDbCommand(selStr, OLEDBCon)
Reader = OleDbCom.ExecuteReader(CommandBehavior.CloseConnection)
Dim res As New ArrayList
While (Reader.Read())
Dim flast = Reader.FieldCount - 1
Dim rec As New Dictionary(Of String, Object)
For i = 0 To flast
Dim name As String = Reader.GetName(i)
Dim value As Object = Reader(i)
rec.Add(name, value)
Next
res.Add(rec)
End While
Reader.Close()
End Using
OLEDBCon.Close()
End Using
Теперь я могу получить данные из набора:
- Код: Выделить всё
Dim n, l As Integer
n = 10
l = 2
Dim s As String = res(n)(Reader.GetName(l)).ToString
MsgBox(s)
При заполнении ArrayList в цикле естественно, получается задержка.
А теперь собственно вопрос:
1) Можно ли каким-либо образом получить данные нужной ячейки из набора Reader?
2) Можно ли каким-либо образом поместить (преобразовать) объект Reader в объект ArrayList без циклов и подвисания программы?