Problem bei Portierung von ADO auf ADO.Net

lupoli

Grünschnabel
Hi zusammen!
Ich bin gerade ein VB6 Programm nach VB.net am portieren, allerdings habe ich bei gewissen Sachen etwas Mühe...
z.B. beim Zugriff auf eine Access-DB. In VB6 habe ich dies mit ADO wie folgt gelöst:

Code:
Dim objRSLines As ADODB.Recordset
Dim objRSIndexes As ADODB.Recordset

Set objConn = New ADODB.Connection
Set objRSLines = New ADODB.Recordset
Set objRSIndexes = New ADODB.Recordset

objConn.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & _
    App.Path & "\files.mdb"

Set objRSLines = objConn.Execute("SELECT DISTINCT Name from tbl_files")


Do While Not objRSLines.EOF
  strCurrentLine = objRSLines(0).Value
  Set objRSIndexes = objConn.Execute("SELECT DISTINCT Index from " & _
      "tbl_files where Name = '" & strCurrentLine & "'")
  Do While Not objRSIndexes.EOF
    strCurrentIndex = objRSIndexes(0).Value
    'da mach ich dann noch etwas damit
    '....
    objRSIndexes.MoveNext
  Loop
  objRSLines.MoveNext
Loop

Wie löse ich nun das ganza möglichst effizient unter VB.Net? Ich habe mal das nachfolgende angefangen,
aber es läuft nicht, weil ich für jeden DataReader ein eigens Command-Objekt benötigte, welches wiederrum ein eigenes Connection-Objekt benötigt. Oder muss ich für die alte VB6 Lösung nun unter .Net wirklich 2 Connection-Objekte, 2 Command-Objekte und 2 DataReader-Objekte haben, wo ich doch unter VB6 lediglich ne Connection und 2 Recordsets benötigte
Hier noch mein VB.Net Code:
Code:
Dim objConnection As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; " & _
    "Data Source=" & Environment.CurrentDirectory.ToString & "\files.mdb")
Dim objDBCommand As New OleDb.OLEDBCommand
Dim objNamesDataReader As OleDb.OleDbDataReader
Dim objIndexDataReader As OleDb.OleDbDataReader

objConnection.Open()
objDBCommand.Connection = objConnection
objDBCommand.CommandText = "SELECT DISTINCT Name from tbl_files"
objNamesDataReader = objDBCommand.ExecuteReader

Do While (objNamesDataReader.Read())

    strCurrentLine = objNamesDataReader(0)
    objDBCommand.CommandText = "SELECT DISTINCT Index from tbl_files where Name = '" & strCurrentLine & "' order by Index desc"
    objDBCommand.Connection = objConnection
    objIndexDataReader = objDBCommand.ExecuteReader()

    Do While objIndexDataReader.Read()
        strCurrentIndex = objIndexDataReader(0)
            'da mach ich dann noch etwas damit
            '....
    Loop
Loop

Besten Dank für Eure Hilfe
mfg
Lupoli
 
Zurück