CSV import/export VB 2010

CEIS

Grünschnabel
Hallo Leute,

ich habe ein kleines Problem:

1.) Ich wil eine CSV importieren, im DGV anzeigen und speichern als Tablelle in einer Datenbank

Ich kann eine Datei Importieren als Datatable diese im DGV Anzeigen lassen. Nun will ich aber diese Datatable bzw. das DGV als Tablelle in einer bestehenden Datenbank abspeichern.

Alles Googeln und Nachlesen in verschiedenen Büchern hat mich nicht wirklich zum Erfolg weiter verholfen.

Meine Bitte an Euch: Wie speichere ich eine Datatable die im DGV angezeigt wird als neue Tabelle in meiner Datenbank ab ?

PS: Ich bin Neuling, daher bitte nicht lachen !

2.) Nun will ich, auch den anderen Weg nutzen und eine Tabelle in CSV importieren. Dieses soll dann in Excel später verarbeitet werden.
Ich habe nun folgendes Problem mit den Trennzeichen (delimiter). Ich bekomme es einfach nicht hin. Mein Programm schreibt mir im Excel alles in eine Spalte.

Anbei der Quellcode für die Klasse:

Imports System.IO
Public Class ccsv
Function Export(ByVal dt As DataTable, ByVal fullpath As String, ByVal delimiter As String) As Boolean
' Variablen destlegen
Dim intI, intC As Integer
Dim strValue As String
Dim strRowValue As String
Dim enc As System.Text.Encoding
Dim Qualifier As String = """"
Dim row As DataRow

enc = System.Text.Encoding.GetEncoding(1252)

Dim swriter As New StreamWriter(fullpath, False, enc)

intC = dt.Columns.Count

'header
strRowValue = ""
strValue = ""
' Spaltenüberschriften einlesen
For intI = 0 To intC - 1
strValue = dt.Columns(intI).ColumnName
strValue = strValue.Replace(Qualifier, Qualifier & Qualifier)

strRowValue = strRowValue & Qualifier & strValue & Qualifier

If intI > intC - 1 Then
strRowValue = strRowValue & delimiter
End If
Next
swriter.Write(strRowValue)
swriter.WriteLine()

' Zeilen der Tabelle einlesen
For Each row In dt.Rows
strRowValue = ""
strValue = ""

For intI = 0 To intC - 1
strValue = row.Item(intI).ToString
strValue = strValue.Replace(Qualifier, Qualifier & Qualifier)

strRowValue = strRowValue & Qualifier & strValue & Qualifier

If intI > intC - 1 Then
strRowValue = strRowValue & delimiter
End If
Next
swriter.Write(strRowValue)
swriter.WriteLine()
Next
swriter.Close()

End Function

End Class

Anbei der Quellcode der Form:

Public Class test

Private mdt As New DataTable

Private Sub test_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
mdt.Columns.Add("Spalte 1")
mdt.Columns.Add("Spalte 2")

mdt.Rows.Add("Becker", "Heinz")

mdt.Rows.Add("Michael", "Gahn")
DataGridView1.DataSource = mdt
End Sub

' Exportieren nach csv
Private Sub b_exportcsv_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_exportcsv.Click
Dim export As New ccsv
export.Export(mdt, "C:\test-csv.csv", ",")
End Sub
End Class

Ich hoffe Ihr könnt mir helfen, im Bereich mit CSV-Dateien bin ich seit Gestern absoluter Anfänger.

Danke
 
Zurück