vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2012
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ADO.NET / Datenbanken
Re: SQLconnection zu xlsx/xls in DataTable 
Autor: Jojo
Datum: 04.03.10 13:47

Hey Dave,

Danke für den Hinweis. Ich habe es wie folgt geändert und alles funktioniert:

    Dim DT As DataTable
        DT = csv2Datatable("c:\temp\Tabelle.xls", "Blatt1")
        For Each dr As DataRow In DT.Rows
...
        Next
und die Function:

    Function csv2Datatable(ByVal Dateiname As String, ByVal Blattname As _
      String) As DataTable
 
        If System.IO.File.Exists(Dateiname) = False Then Return Nothing
 
        Dim FileInfo As System.IO.FileInfo = New System.IO.FileInfo(Dateiname)
        Dim DT As New DataTable
        Dim oConn As System.Data.OleDb.OleDbConnection = New _
          System.Data.OleDb.OleDbConnection
        If Dateiname.Contains(".xlsx") Then
            oConn.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;Data" & _
              "Source=" & Dateiname & ";Extended Properties=" & Chr(34) & _
              "Excel 12.0 Xml;HDR=YES" & Chr(34) & ";")
        Else
            oConn.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data" & _
              "Source=" & Dateiname & ";Extended Properties=" & Chr(34) & _
              "Excel 8.0;HDR=Yes;IMEX=1" & Chr(34) & ";")
        End If
        oConn.Open()
 
        Dim cmd As System.Data.OleDb.OleDbCommand
        cmd = New System.Data.OleDb.OleDbCommand("SELECT * FROM [" & Blattname _
          & "$]", oConn)
 
        Dim reader As System.Data.OleDb.OleDbDataReader = cmd.ExecuteReader( _
          CommandBehavior.KeyInfo Or CommandBehavior.CloseConnection)
        Dim schema As DataTable = reader.GetSchemaTable()
        Dim columns(schema.Rows.Count - 1) As DataColumn
        Dim column As DataColumn
 
        'Build the schema for the table that will contain the data.
        For i As Integer = 0 To columns.GetUpperBound(0) Step 1
            column = New DataColumn
            column.AllowDBNull = CBool(schema.Rows(i)("AllowDBNull"))
            column.AutoIncrement = CBool(schema.Rows(i)("IsAutoIncrement"))
            column.ColumnName = CStr(schema.Rows(i)("ColumnName"))
            column.DataType = CType(schema.Rows(i)("DataType"), Type)
 
            If column.DataType Is GetType(String) Then
                column.MaxLength = CInt(schema.Rows(i)("ColumnSize"))
            End If
 
            column.ReadOnly = CBool(schema.Rows(i)("IsReadOnly"))
            column.Unique = CBool(schema.Rows(i)("IsUnique"))
            columns(i) = column
        Next i
 
        Dim data As New DataTable
        Dim row As DataRow
 
        data.Columns.AddRange(columns)
 
        'Get the data itself.
        While reader.Read()
            row = data.NewRow()
 
            For i As Integer = 0 To columns.GetUpperBound(0)
                row(i) = reader(i)
            Next i
 
            data.Rows.Add(row)
        End While
 
        reader.Close()
        oConn.Close()
 
        Return data
 
    End Function

Joachim

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
SQLconnection zu xlsx/xls in DataTable721Jojo04.03.10 08:50
Re: SQLconnection zu xlsx/xls in DataTable270ModeratorDaveS04.03.10 09:10
Re: SQLconnection zu xlsx/xls in DataTable443Jojo04.03.10 13:47
Re: SQLconnection zu xlsx/xls in DataTable265ModeratorFZelle04.03.10 22:45
Re: SQLconnection zu xlsx/xls in DataTable225Jojo04.03.10 22:52
Re: SQLconnection zu xlsx/xls in DataTable260ModeratorFZelle05.03.10 01:08

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2012 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.

Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel