Hat zwar etwas lange gedauert, aber ich lebe noch und bin sogar ein stückchen weiter.
Also in meinem Tool wähle ich mit Hilfe der DriveListbox-->DirListBox und FileListBox oder je nach Wunsch mit dem OpenFileDialog meine DB aus.
Nun sollen die Tabellen in einer cbo angezeigt werden und in einem Grid der Tabellen inhalt der gewählten Tabelle. Mit Access-Datenbanken habe ich das so gelöst:
Code:
' ###############################################################
' ## Neue Verbindung zu einer mdb-DB aufbauen
' ###############################################################
Dim strConn As String
Dim aCon As OleDb.OleDbConnection
strConn = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", strDBPfad + "\" + strDBName)
aCon = New OleDb.OleDbConnection(strConn)
Dim dTbl As DataTable
aCon.Open()
'Füllen der ComboBox2
Try
dTbl = aCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
ComboBox2.DataSource = dTbl
ComboBox2.DisplayMember = "TABLE_NAME"
Finally
aCon.Close()
End Try
und in meinem Button-Ereigniss habe ich folgenden Code:
Code:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
' Anzeigen des Tabelleninhaltes#
DataGridView3.DataSource = Nothing
DataGridView3.DataMember = Nothing
Dim sTableName As String = ComboBox2.GetItemText(ComboBox2.SelectedValue)
'StatusBar1.Text = sTableName
Dim strConn As String = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", strDBPfad + "\" + strDBName)
Dim aCon = New OleDb.OleDbConnection(strConn)
aCon.Open()
Try
Dim aCmd As OleDb.OleDbCommand
Dim aAdp As OleDb.OleDbDataAdapter
Dim aDS As DataSet = New DataSet
aCmd = New OleDb.OleDbCommand("SELECT * FROM " + sTableName, aCon)
aAdp = New OleDb.OleDbDataAdapter(aCmd)
aAdp.Fill(aDS, sTableName)
DataGridView3.DataSource = aDS
DataGridView3.DataMember = sTableName
Finally
aCon.Close()
End Try
End Sub
Nun möchte ich dieses Tool auch noch für eine Mobile Datenbank (*.sdf) anwenden. leider gibt es den Befehl
GetOleDbSchemaTable(OleDbSchemaGuid.Ta.... da nicht.
Hat jemand eine Idee, wie ich die Tabellen auslesen kann
Gruß
Krebsbachbub