Einlesen einer CSV-Datei in ein DataGridView oder Database

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
_______________________________________________________________________________________________________