Announcement

Collapse
No announcement yet.

Felddatentyp aus Datenbank auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Felddatentyp aus Datenbank auslesen

    Hallo, wie bekomme ich den Felddatentyp aus den Metadaten.
    Habe schon einiges probiert mit:
    <PRE>
    objRestrictions = New Object() {Nothing, Nothing, table_name, Nothing}
    conn.GetOleDbSchemaTable(OleDbSchemaGuid.Schemata, objRestrictions)

    </PRE>
    danke,Gruß Lisa

  • #2
    Hallo,

    das folgende Beispiel demonstriert dies. Wenn die ACCESS-Datenbank über den Datei öffnen-Dialog ausgewählt wurde und auch die Tabelle ausgewählt ist, zeigt das Beispiel die Spaltennamen mit dem Datentyp in der Listbox an:
    <pre>
    Private strConn As String
    Private aCon As OleDbConnection
    <br>
    Private Sub ButtonSelectMDB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonSelectMDB.Click
    If OpenFileDialogMDB.ShowDialog() = DialogResult.OK Then
    TextBoxMDBFile.Text = OpenFileDialogMDB.FileName()
    strConn = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Da ta Source={0}", TextBoxMDBFile.Text)
    aCon = New OleDbConnection(strConn)
    Dim aTbl As DataTable
    aCon.Open()
    Try
    aTbl = aCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
    New Object() {Nothing, Nothing, Nothing, "TABLE"})
    ComboBoxTables.DataSource = aTbl
    ComboBoxTables.DisplayMember = "TABLE_NAME"
    Finally
    aCon.Close()
    End Try
    End If
    End Sub
    <br>
    Private Sub ButtonShow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonShow.Click
    DataGrid1.DataSource = Nothing
    DataGrid1.DataMember = Nothing
    Dim sTableName As String = ComboBoxTables.GetItemText(ComboBoxTables.Selected Value)
    StatusBar1.Text = sTableName
    aCon = New OleDbConnection(strConn)
    aCon.Open()
    Try
    Dim aCmd As OleDbCommand
    Dim aAdp As OleDbDataAdapter
    Dim aDS As DataSet = New DataSet
    aCmd = New OleDbCommand("SELECT * FROM " + sTableName, aCon)
    aAdp = New OleDbDataAdapter(aCmd)
    aAdp.Fill(aDS, sTableName)
    DataGrid1.DataSource = aDS
    DataGrid1.DataMember = sTableName
    Finally
    aCon.Close()
    End Try
    End Sub
    <br>
    Private Sub ButtonShowFields_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonShowFields.Click
    Dim sItem As String
    Dim sTableName As String = ComboBoxTables.GetItemText(ComboBoxTables.Selected Value)
    StatusBar1.Text = sTableName
    aCon = New OleDbConnection(strConn)
    aCon.Open()
    Try
    Dim aSchemaTable As DataTable
    aSchemaTable = aCon.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, _
    New Object() {Nothing, Nothing, sTableName, Nothing})
    ' Spaltenname und Datentyp anzeigen
    For Each aRow As DataRow In aSchemaTable.Rows
    sItem = String.Format("Spalte »{0}« ist vom Typ »{1}«", _
    aRow("COLUMN_NAME"), _
    aRow("DATA_TYPE"))
    ListBox1.Items.Add(sItem)
    Next
    Finally
    aCon.Close()
    End Try
    End Sub
    </pre&gt

    Comment


    • #3
      danke, andrea

      Comment

      Working...
      X