Tabelle in DataGridView laden

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Tabelle in DataGridView laden

    Hallo liebes Forum,

    ich habe ein Problem mit meinem Programm... Und zwar habe ich eine Excel Tabelle, die ich in ein Datagridview laden möchte. Den Code habe ich auch so weit, nur komischerweise bekomme ich immer die Fehlermeldung, dass es einen Fehler beim einlesen der Daten gab, obwohl ich den Pfad und alles angegeben habe.

    Hier ist der Code:

    VB.NET-Quellcode

    1. ' Excel-Tabelle anzeigen Dim oDs As System.Data.DataSet
    2. Dim oConn As System.Data.OleDb.OleDbConnection
    3. Dim oAdapter As System.Data.OleDb.OleDbDataAdapter
    4. ' Pfad und Tabellennamen bitte anpassen!
    5. Dim sFile As String = "d:\excelfile.xls"
    6. Dim sTable As String = "Tabelle1"
    7. ' Connection-String für die DB.Verbindung zur Excel-Datei
    8. Dim sConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    9. "Data Source=" & sFile & ";" & _
    10. "Extended Properties=Excel 8.0;"
    11. ' Connection herstellen
    12. oConn = New System.Data.OleDb.OleDbConnection(sConn)
    13. ' Excel-Tabelle referenzieren
    14. ' Hinweis: Tabellenname muss mit abschließendem $-Zeichen und
    15. ' in eckigen Klammern stehen
    16. oAdapter = New System.Data.OleDb.OleDbDataAdapter( _
    17. "SELECT * FROM [" & sTable & "$]", oConn)
    18. ' DataSet erstellen und mit Daten aus dem DataAdapter füllen
    19. oDs = New System.Data.DataSet
    20. Try
    21. oAdapter.Fill(oDs)
    22. ' DataGrid füllen und Daten anzeigen
    23. With DataGrid1
    24. .DataSource = oDs.Tables(0)
    25. .ReadOnly = True
    26. .Refresh()
    27. End With
    28. Catch ex As Exception
    29. MsgBox("Fehler beim Anzeigen der Excel-Daten!")
    30. Finally
    31. ' DB-Verbindung schließen
    32. oConn.Close()
    33. End Try End Sub



    Würde mich über Hilfe freuen.

    friloo schrieb:

    ich habe ein Problem mit meinem Programm...

    Moin,

    naja - Dein Programm ist es nicht, es ist eine 1:1 Kopie aus dem VB-Archiv ;).
    Wie wäre es z.B., wenn Du Dir eine aussagekräftige Fehlermeldung anzeigen lässt?

    Du könntest:

    VB.NET-Quellcode

    1. MsgBox("Fehler beim Anzeigen der Excel-Daten!")


    ..ersetzen mit:

    VB.NET-Quellcode

    1. MessageBox.Show(ex.Message)


    ..und bekämst dann evtl. dies hier angezeigt?:


    LG,
    Bruno
    Halli Hallo,

    danke für die Hilfen... hab es nun einen anderen Code gefunden mit dem es geht... Allerdings habe ich ein Problem....

    Und zwar speicher ich das ganze dann später wieder ab, was ich mit diesem Code mache:

    VB.NET-Quellcode

    1. Private Sub tabelle_speicher()
    2. System.IO.File.Delete(My.Settings.pfad_cust & "/kunden.xls")
    3. Dim xlApp As Excel.Application Dim xlWorkBook As Excel.Workbook Dim xlWorkSheet As Excel.Worksheet Dim misValue As Object = System.Reflection.Missing.Value Dim i As Integer Dim j As Integer
    4. xlApp = New Excel.Application()
    5. xlWorkBook = xlApp.Workbooks.Add(misValue) xlWorkSheet = xlWorkBook.Sheets("Tabelle1")
    6. For i = 0 To DataGrid1.RowCount - 2 For j = 0 To DataGrid1.ColumnCount - 1 xlWorkSheet.Cells(i + 1, j + 1) = _ DataGrid1(j, i).Value.ToString() Next Next
    7. xlWorkSheet.SaveAs(My.Settings.pfad_cust & "/kunden.xls") xlWorkBook.Close() xlApp.Quit()
    8. releaseObject(xlApp)releaseObject(xlWorkBook) releaseObject(xlWorkSheet)
    9. MsgBox("Datei gespeichert unter:" & My.Settings.pfad_cust & "/kunden.xls")
    10. End Sub


    Nun ist es so, dass ich die Datei nicht wieder einlesen kann und mit Excel auch nicht ohne Probleme öffnen kann, da ich die Fehlermeldung bekomme, dass das nicht das erwartete Format ist. Jemand vielleicht eine Idee?
    Tut mir leid, aber irgendwie zerhaut mein Browser das immer wieder... Hab mir aber aufgrund von noch ein paar Problemen überlegt doch eine XML Datei zu nehmen....

    Die Datei lade ich so:

    VB.NET-Quellcode

    1. Dim xmlFile As XmlReader
    2. xmlFile = XmlReader.Create(My.Settings.pfad_cust & "/kunden.xml", New XmlReaderSettings())
    3. Dim ds As New DataSet
    4. ds.ReadXml(xmlFile)
    5. DataGrid1.DataSource = ds.Tables(0)



    Speichern würde ich gerne so:

    VB.NET-Quellcode

    1. Dim dtTest As New System.Data.DataTable("Daten")
    2. Dim dvTest As New DataTable
    3. dvTest = DataGrid1.DataSource
    4. dvTest.WriteXml(My.Settings.pfad_cust & "/kunden.xml", System.Data.XmlWriteMode.WriteSchema)


    Aber er sagt mir, dass die Datei genutzt wird, was auch verständlich ist, weil ich Sie ja oben einlese...

    Könnt ihr mir da helfen?
    also datasetse lädt speichert man einfach mit Dataset.ReadXml/.WriteXml

    wobei bei mir nur typisierte Datasetse vorkommen - gugge vlt. Daten laden, speichern, verarbeiten

    das mit dem Browser löst sich, wennman Bitte VB-Tag benutzen - aber richtig ganz genau durchliest, und sorgfältig befolgt.