Hallo zusammen
ich versuche vergeblich die Tabellen einer MDB auszulesen… irgendwie krieg ich das nicht hin…
in VB/A sieht es so aus:
Private Sub getDBTables()
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim i As Integer
On Error Resume Next
cnn.Provider = "Microsoft.Jet.OLEDB.4.0"
cnn.Properties("Data Source") = mDBfile
cnn.Open
If Not Err.Number = 0 Then
MsgBox ("Fehler beim öffnen der Datenbank!")
Exit Sub
End If
Set rs = cnn.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "TABLE"))
lstDBTables.Clear
Do While Not rs.EOF
lstDBTables.AddItem rs.Fields("TABLE\_NAME").Value
rs.MoveNext
Loop
rs.Close
cnn.Close
End Sub
in VB.NET sieht es bisher so aus:
<small><br>Dim cnn As OleDb.OleDbConnection<br> Dim mdb As New clsMDBHandler<br> Dim DT As New DataTable<br><br> If mFilename.Length = 0 Then<br> Me.DialogResult = Windows.Forms.DialogResult.Cancel<br> Me.Close()<br> Else<br> Cursor = Cursors.WaitCursor<br> mdb.DB_File = New IO.FileInfo(mFilename)<br> End If<br> Try<br> cnn = mdb.GetConnection()<br> cnn.Open()<br> DT = cnn.GetSchema("COLUMNS", New String() {Nothing, Nothing, Nothing, "TABLE_NAME"})<br> for each w in dt.columns<br> lstmdb.items.add w<br> next w<br> Catch ex1 As Exception<br> 'fehler<br> Finally<br> cnn.Close()<br> cnn.Dispose()<br> cnn = Nothing<br><br> Cursor = Cursors.Arrow<br> End Try<br> End Sub<br></small>
w ist nicht deklariert wird vom typ datarows, bitte nicht wunder!
Ich versuche einfach nur die Datenbank zu öffnen Tabellen holen schließen fertig. Das alles soll in einer listbox ausgegeben werden! also ohne datasets und ohne kompliziert, auch habe ich nicht vor die listbox an die DB zu binden.
Hinter clsMDBHandler verbirgt sich ein Klasse die die verbindung herstellt, das funktioniert soweit auch alles!
Hab es in meiner Verzweiflung schon mit ADOX probiert aber beim aufruf von
cat.activeConnection = cnn
erhalte ich eine fehlermeldung (grad vergessen welche, klingt aber nach einem Typenumwandlungsproblem)
Wobei ich aber so wenig wie möglich zusätzliche referenzen in das Projekt einbinden möchte (also möglichst ohne ADOX)
vielen Dank schon mal fürs Roman lesen und ich hoffe mir kann wer bei meinem problemchen helfen.
lg Enrico