Excel Datei in DVG importieren und in anderes DGV übergeben

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Kasi.

    Excel Datei in DVG importieren und in anderes DGV übergeben

    Hallo,

    ich arbeite an einem Tool, welches Excel-Dateien in ein DGV importiert. Dies funktioniert erfolgreich.

    Dazu habe ich ein anderes DGV, welches an eine Access-DB gebunden ist. Ich möchte die Datensätze des ImportDGVs in das DGV bzw. in die Datenbank speichern.

    Ich weiß, dass ich eine Schleife benötige, doch egal wie sehr ich versuche mit Schleifen zu arbeiten scheitere ich grundsätzlich an diesen.
    du könntest dir ein typisiertes Dataset generieren lassen aus der Access-DB.
    Dann liest du deine Excel nicht in ein DGV, sondern in die entsprechende typisierte DataTable.
    Das DGV kannst du an die DataTable binden.
    Zum Speichern in die DB kannst du typedTableADapter.Update(typedTable) aufrufen, feddich.
    Man kann viel falsch machen bei sowas - v.a. Option STrict Off wirkt sich negativ aus.

    Am besten, du postest Bild vom TypDataset, und dann den Code, mit dem du Daten in die typDataTable reintust, und wie du das dann an die Access updatest.
    hier ein Bsp.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;data source=D:\Db2010.accdb")
    3. 'Select ganze Excel Tabelle nach Access und benenne die neue Access Tabele NTestTable
    4. ' Dim sSql As String = "SELECT * INTO [;DATABASE=D:\Db2010.accdb].NTestTablpe FROM [Tabelle1$]"
    5. 'sSql &= " In 'E:\vbExcel.xlsx' 'Excel 12.0 XML;HDR=YES;'"
    6. 'oder
    7. 'Select mit Range(Tabelle1$A1:C10) und Where Bedingung(ID Between 1 And 5)
    8. 'in der Excel Tabelle is eine Spalte mit Namen ID
    9. Dim sSql As String = "SELECT * INTO [;DATABASE=D:\Db2010.accdb].NTestTable FROM [Tabelle1$A1:C10]"
    10. sSql &= " In 'E:\vbExcel.xlsx' 'Excel 12.0 XML;HDR=YES;'"
    11. sSql &= " Where ID Between 1 And 5"
    12. con.Open()
    13. ExecuteSQL(con, sSql)
    14. con.Close()
    15. con = Nothing
    16. End Sub
    17. Public Function ExecuteSQL(ByVal Con As OleDb.OleDbConnection, _
    18. ByVal sSQL As String, _
    19. Optional ByRef ErrMessage As String = Nothing, _
    20. Optional ByVal TransAction As _
    21. OleDb.OleDbTransaction = Nothing) As Integer
    22. ErrMessage = Nothing
    23. Try
    24. Dim Result As Integer = 0
    25. Using Cmd As New OleDb.OleDbCommand(sSQL, Con, TransAction)
    26. Result = Cmd.ExecuteNonQuery
    27. End Using
    28. Return Result
    29. Catch ex As Exception
    30. ErrMessage = ex.Message
    31. Return 0
    32. End Try
    33. End Function



    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Kasi“ ()