Mit dieser Funktion kann man eine CSV-Datei in ein DataGridView einlesen.
Mit kleinen Änderungen kann diese Funktion auch für Datenbank-Tabellen genutzt werden.
‚**** P_Dateipfad = Eigener Dateipfad z.B. F:/Test/ ****
‚**** P_Dateiname = Eigener Dateiname ****
_______________________________________________________________________________________________________
Public Function ImportDatenDataGridView(P_Dateipfad As String, P_Dateiname As String) As String
Dim Dateiname As String = P_Dateipfad.ToString & P_Dateiname.ToString & „.csv“
Dim Meldung As String = „“
Dim Zeile As String = „“
Dim Anzahl As Long = 0
If My.Computer.FileSystem.DirectoryExists(P_Dateipfad.ToString) Then
If Not My.Computer.FileSystem.FileExists(Dateiname.ToString) Then
Meldung = „Datei nicht vorhanden.“
Return (Meldung)
End If
Dim reader As New System.IO.StreamReader(Dateiname.ToString)
‚*** Erste Zeile wird ignoriert, da sich hier die Feldnamen befinden ****
Zeile = reader.ReadLine.ToString
Do Until reader.EndOfStream
Dim eintab() As String = Split(reader.ReadLine.ToString, „;“)
Form1.DataInput.Rows.Add(1) ‚**** DataInput ist der Name des DataGridView
For i As Integer = 0 To 4
Form1.DataInput.Rows(Anzahl).Cells(i).Value = eintab(i).ToString
Next
Anzahl = Anzahl + 1
Loop
reader.Close()
Meldung = „Eingelesene Datensätze: “ & Anzahl.ToString
End If
Return (Meldung)
End Function
_______________________________________________________________________________________________________
Public Function ImportDatenDatabase(P_Dateipfad As String, P_Dateiname As String) As String
Dim Dateiname As String = P_Dateipfad.ToString & P_Dateiname.ToString & „.csv“
Dim Meldung As String = „“
Dim Anzahl As Long = 0
Dim Zeile As String = „“
Dim conn As OleDb.OleDbConnection
Dim cmd As New OleDb.OleDbCommand
If My.Computer.FileSystem.DirectoryExists(P_Dateipfad.ToString) Then
If Not My.Computer.FileSystem.FileExists(Dateiname.ToString) Then
Meldung = „Datei nicht vorhanden“
Return (Meldung)
End If
Dim reader As New System.IO.StreamReader(Dateiname.ToString)
‚*** Erste Zeile wird ignoriert, da sich hier die Feldnamen befinden ****
Zeile = reader.ReadLine.ToString
conn = New OleDb.OleDbConnection(Module1.db_path)
conn.Open()
Do Until reader.EndOfStream
Dim eintab() As String = Split(reader.ReadLine.ToString, „;“)
Dim sql = „INSERT INTO Artikel_Neu (Nummer, Kurzbezeichnung, Menge, Einheit, Preis) VALUES (‚“ & eintab(0).ToString & „‚, ‚“ & eintab(1).ToString & „‚, ‚“ & eintab(2).ToString & „‚, ‚“ & eintab(3).ToString & „‚, ‚“ & eintab(4).ToString & „‚);“
cmd = New OleDb.OleDbCommand(sql, conn)
Try
cmd.ExecuteNonQuery()
Catch ex As Exception
Meldung = „Fehler bei Einlesen“
End Try
Anzahl = Anzahl + 1
Loop
conn.Close()
reader.Close()
Meldung = „Eingelesene Datensätze: “ & Anzahl.ToString
End If
Return (Meldung)
End Function
_______________________________________________________________________________________________________