Hello Everybody,
With the code below I want to import a .csv file into MS Access.
The .csv file can contain more than 25.000 lines.
The code I have works! But... it runs like 10 minutes.
My questios is: Can I optimize my code so it runs much faster?
Thanks in advance...
Code:Private Sub LoopDoorRegels() 'Open the .csv file Dim sr As StreamReader = File.OpenText(strBestandslocatie) ProgressBar1.Minimum = 0 ProgressBar1.Maximum = intTotIntelezen ProgressBar1.Step = 1 ProgressBar1.Value = 0 Dim line() As String Dim intAantalIngelezen As Integer = 0 Do While sr.Peek() >= 0 line = sr.ReadLine.Split(";") If line(3).Trim.ToString = strCheckPeriode Then ProgressBar1.Minimum = 0 : ProgressBar1.Maximum = 1 : ProgressBar1.Value = 1 MsgBox("Deze periode is reeds ingelezen en verwerkt.") blnTblBestaat = True Exit Sub End If InsertDetails(line(0).Trim, line(1).Trim, line(2).Trim, line(3).Trim, line(4).Trim, line(5).Trim, line(6).Trim) intAantalIngelezen = intAantalIngelezen + 1 ProgressBar1.PerformStep() Me.lblTeller.Text = "Aantal ingelezen: " & intAantalIngelezen.ToString & "/" Me.lblTeller.Refresh() Loop sr.Close() sr.Dispose() blnTblBestaat = False End Sub Private Sub InsertDetails(ByVal strKP As String, ByVal strPersNR As String, ByVal strNaam As String, ByVal strPeriode1 As String, _ ByVal strLooncode As String, ByVal strWaarde As String, ByVal strBTW As String) Dim strInsert_SQL As String = String.Format("INSERT INTO tblIMPORT " & _ "(Kostenplaats,PersoneelsNummer,Naam,Periode,Looncode,Waarde,BTW,DatumInlezen) " & _ "VALUES " & _ "(@Kostenplaats,@PersoneelsNummer,@Naam,@Periode,@Looncode,@Waarde,@BTW,@DatumInlezen)") Dim cmdInsert As New OleDbCommand(strInsert_SQL, connection) cmdInsert.Parameters.AddWithValue("@Kostenplaats", strKP.Trim) cmdInsert.Parameters.AddWithValue("@PersoneelsNummer", strPersNR.Trim) cmdInsert.Parameters.AddWithValue("@Naam", strNaam.Trim) cmdInsert.Parameters.AddWithValue("@Periode", strPeriode1.Trim) cmdInsert.Parameters.AddWithValue("@Looncode", strLooncode.Trim) cmdInsert.Parameters.AddWithValue("@Waarde", strWaarde.Trim) cmdInsert.Parameters.AddWithValue("@BTW", strBTW.Trim) cmdInsert.Parameters.AddWithValue("@DatumInlezen", DateTime.Now.ToString("dd-MM-yyyy HH:mm")) connection.Open() cmdInsert.ExecuteNonQuery() connection.Close() cmdInsert.Dispose() cmdInsert = Nothing End Sub




Reply With Quote