Hallo,
Ich hab folgendes Problem, ich würde gerne eine CSV Datei in einen SQL Datei Umwandeln lassen. Leider habe ich noch keine sonderliche erfahrung mit der programmiersprache vb.net. Das habe ich bisher geschafft. Im ersten Moment geht es nur um den Import der CSV Datei... danach kann man sich über den Rückweg gedanken machen. Beim Loop Schritt bekomme ich grundsätzlich eine eine Exception, die lautet : ArgumentetExeption, Der Eingabearray ist länger als die Anzahl der Spalten in dieser Tabelle.
Hoffe jemand kann mir helfen
Mfg Stomp
Imports System.IO
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Imports Microsoft.VisualBasic.FileIO.TextFieldParser
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim table As New DataTable()
Dim parser As New FileIO.TextFieldParser("C:\Users\XXX\Desktop\XXX\XXX\DatenbankTest\csvconverter\csvdatei\Kunde1.csv")
table.Columns.Add("KUNDENNUMMER")
table.Columns.Add("MATCHCODE")
table.Columns.Add("MANDANT")
table.Columns.Add("NAME1")
table.Columns.Add("NAME2")
table.Columns.Add("STRAßE")
table.Columns.Add("PLZ")
table.Columns.Add("ORT")
parser.Delimiters = New String() {";"}
parser.HasFieldsEnclosedInQuotes = True
parser.TrimWhiteSpace = True
parser.ReadLine()
Do Until parser.EndOfData = True
table.Rows.Add(parser.ReadFields())
Loop
Dim strSql As String = "INSERT INTO TestTable KUNDENNUMMER,MATCHCODE,MANDANT,NAME1,NAME2,STRAßE,PLZ,ORT) VALUES (@KUNDENNUMMER,@MATCHCODE,@MANDANT,@NAME1,@NAME2,@STRAßE,@PLZ,@ORT)"
Dim SqlconnectionString As String = "Server=xxx.xxx.xxx.xxx\blabla\Tabellen;Database=TestDatabase;User Id=xxx;Password=xxx;"
Using connection As New SqlClient.SqlConnection(SqlconnectionString)
Dim cmd As New SqlClient.SqlCommand(strSql, connection) ' create command objects and add parameters
With cmd.Parameters
.Add("@KUNDENNUMMER", SqlDbType.VarChar, 50, "KUNDENNUMMER")
.Add("@MATCHCODE", SqlDbType.VarChar, 50, "MATCHCODE")
.Add("@MANDANT", SqlDbType.VarChar, 50, "MANDANT")
.Add("@NAME1", SqlDbType.VarChar, 50, "NAME1")
.Add("@NAME2", SqlDbType.VarChar, 50, "NAME2")
.Add("@STRAßE", SqlDbType.VarChar, 50, "STRAßE")
.Add("@PLZ", SqlDbType.VarChar, 50, "PLZ")
.Add("@ORT", SqlDbType.VarChar, 15, "ORT")
End With
Dim adapter As New SqlClient.SqlDataAdapter()
adapter.InsertCommand = cmd
Dim iRowsInserted As Int32 = adapter.Update(table)
End Using
End Sub
End Class
Ich hab folgendes Problem, ich würde gerne eine CSV Datei in einen SQL Datei Umwandeln lassen. Leider habe ich noch keine sonderliche erfahrung mit der programmiersprache vb.net. Das habe ich bisher geschafft. Im ersten Moment geht es nur um den Import der CSV Datei... danach kann man sich über den Rückweg gedanken machen. Beim Loop Schritt bekomme ich grundsätzlich eine eine Exception, die lautet : ArgumentetExeption, Der Eingabearray ist länger als die Anzahl der Spalten in dieser Tabelle.
Hoffe jemand kann mir helfen
Mfg Stomp
Imports System.IO
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Imports Microsoft.VisualBasic.FileIO.TextFieldParser
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim table As New DataTable()
Dim parser As New FileIO.TextFieldParser("C:\Users\XXX\Desktop\XXX\XXX\DatenbankTest\csvconverter\csvdatei\Kunde1.csv")
table.Columns.Add("KUNDENNUMMER")
table.Columns.Add("MATCHCODE")
table.Columns.Add("MANDANT")
table.Columns.Add("NAME1")
table.Columns.Add("NAME2")
table.Columns.Add("STRAßE")
table.Columns.Add("PLZ")
table.Columns.Add("ORT")
parser.Delimiters = New String() {";"}
parser.HasFieldsEnclosedInQuotes = True
parser.TrimWhiteSpace = True
parser.ReadLine()
Do Until parser.EndOfData = True
table.Rows.Add(parser.ReadFields())
Loop
Dim strSql As String = "INSERT INTO TestTable KUNDENNUMMER,MATCHCODE,MANDANT,NAME1,NAME2,STRAßE,PLZ,ORT) VALUES (@KUNDENNUMMER,@MATCHCODE,@MANDANT,@NAME1,@NAME2,@STRAßE,@PLZ,@ORT)"
Dim SqlconnectionString As String = "Server=xxx.xxx.xxx.xxx\blabla\Tabellen;Database=TestDatabase;User Id=xxx;Password=xxx;"
Using connection As New SqlClient.SqlConnection(SqlconnectionString)
Dim cmd As New SqlClient.SqlCommand(strSql, connection) ' create command objects and add parameters
With cmd.Parameters
.Add("@KUNDENNUMMER", SqlDbType.VarChar, 50, "KUNDENNUMMER")
.Add("@MATCHCODE", SqlDbType.VarChar, 50, "MATCHCODE")
.Add("@MANDANT", SqlDbType.VarChar, 50, "MANDANT")
.Add("@NAME1", SqlDbType.VarChar, 50, "NAME1")
.Add("@NAME2", SqlDbType.VarChar, 50, "NAME2")
.Add("@STRAßE", SqlDbType.VarChar, 50, "STRAßE")
.Add("@PLZ", SqlDbType.VarChar, 50, "PLZ")
.Add("@ORT", SqlDbType.VarChar, 15, "ORT")
End With
Dim adapter As New SqlClient.SqlDataAdapter()
adapter.InsertCommand = cmd
Dim iRowsInserted As Int32 = adapter.Update(table)
End Using
End Sub
End Class