[VB.NET] Uitlezen data .csv (Excel)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo allemaal,

Ik ben bezig met een programma die data uit verschillende excel bestanden leest en uiteindelijk weer samenvoegt in een nieuw bestand. Ik loop hierbij echter vast dat tijdens het lezen een error opkomt. Dit komt waarschijnlijk doordat het bestand wat uitgelezen moet worden te groot is. Ik heb hier al meer over opgezocht en wordt hier niet veel wijzer van.

Tijdens het debuggen gaat alles perfect tot er na een paar minuten verschijnt:
DisconnectedContext was detected
Message: De verbinding met context 0xRANDOM is verbroken. De interfaces uit de huidige context (context 0xRANDOM) worden vrijgegeven. Dit kan leiden tot beschadiging of verlies van gegevens. Als u dit probleem wilt omzeilen, moet u ervoor zorgen dat alle contexten/apartments behouden blijven totdat de toepassing helemaal klaar is met de RuntimeCallableWrappers die staan voor de COM-onderdelen die zich hierin bevinden.
Op de plaats van "RANDOM" staat telkens een andere code.

Ik heb hierna iets gevonden genaamd OLEDB, hiermee was ik niet bekend en ik weet ook niet of dit nog recent is dus kopieerde ik de code naar Visual Studio. hierbij geeft MVS aan "Comma, ')', or a valid expression continuation expected." zie onderstaande code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        Try
            Dim MyConnection As System.Data.OleDb.OleDbConnection
            Dim DtSet As System.Data.DataSet
            Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
MyConnection = New System.Data.OleDb.OleDbConnection _
("provider=Microsoft.Jet.OLEDB.4.0;" _
" Data Source='c:\testfile.xls'; " _
"Extended Properties=Excel 8.0;")
            MyCommand = New System.Data.OleDb.OleDbDataAdapter _
            ("select * from [Sheet1$]", MyConnection)
            MyCommand.TableMappings.Add("Table", "TestTable")
            DtSet = New System.Data.DataSet
            MyCommand.Fill(DtSet)
            DataGridView1.DataSource = DtSet.Tables(0)
            MyConnection.Close()
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
De error staat bij " Data Source='c:\testfile.xls'; " _

Mocht iemand een idee hebben hoe dit op te lossen is dan hoor ik die graag! ook ideen om op een andere manier grote .csv bestanden te lezen d.m.v. VB.NET zijn welkom!


Alvast bedankt!

Acties:
  • 0 Henk 'm!

  • BertS
  • Registratie: September 2004
  • Laatst online: 14-04 17:14
Als je strings aan elkaar knoopt moet je er wel even een & bij gebruiken.
Dus van de _ maak je: & _

Acties:
  • 0 Henk 'm!

  • alwinuzz
  • Registratie: April 2008
  • Laatst online: 05-09 09:24
Klopt het nou dat de code die hebt gepost, niets te maken heeft met de error die je post?

Als je je eerste error wil oplossen, is meer info handig (relevante code bijvoorbeeld).

Als je op een andere manier de csv bestanden wil lezen, ik gebruik zelf LINQ to CSV. Werkt prima :)
De voorbeelden zijn in C#, maar het is ook te gebruiken met VB.net denk ik.
http://www.codeproject.co...25133/LINQ-to-CSV-library
http://nuget.org/packages/LinqToCsv

Maar op het eind heb je het over een xls bestand ipv csv...

Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
mag ik vragen waarom je uberhaupt een database access schil gebruikt om een bestand in te lezen?
daar zit best wat 'overbodige' code in, en je creeert ook overbodige afhankelijkheden.

zoek eens op internet naar wat code om op een fatsoenlijke manier .csv bestanden in te lezen.

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:47

gorgi_19

Kruimeltjes zijn weer op :9

Je kan eens kijken naar textfieldparser class

Digitaal onderwijsmateriaal, leermateriaal voor hbo