Beste Tweakers,
Ik heb een Klasse die een CSV File parsed . Dit gebeurd aan de hand van een OpenFileDialog die vervolgens het bestand opent. in een DataAdapter stopt en vervolgens een DataTable met de inhoud teruggeeft.
Het stuk waar hij de OpenFileDialog opent en in een DataAdapter stopt
Dit gaat goed. Hij laad deze ook in en bind deze aan een DataGridView.
Vervolgens stop ik een aantal van deze regels in mijn eigen DataBase (Access). Klasse InternalDB.
Hierin staan alle adapters , dataset enz al gedefinieerd. (En werkt ook zoals het moet werken)
Maar doordat de OpenFileDialog gebruikt is . Werkt de DataAdapter.Update niet meer goed. Hij mist ineens kolommen en krijg bij de insert foutmeldingen dat Kolommen in de source terwijl die er wel degelijk zijn.
Exception : De instructie INSERT INTO bevat de volgende onbekende veldnaam: ArtikelColumn. Zorg ervoor dat u de naam correct hebt getypt en probeer het nogmaals.
Als ik nu de OpenFileDialog weghaal. een vast pad op geef. en hetzelfde doe. Dan werkt het wel goed en doet hij alles ook goed in de DB.
Voorbeeld
Heeft iemand een idee hoe het kan dat een OpenFileDialog ervoor zorgt dat dit fout gaat.
Ik heb een Klasse die een CSV File parsed . Dit gebeurd aan de hand van een OpenFileDialog die vervolgens het bestand opent. in een DataAdapter stopt en vervolgens een DataTable met de inhoud teruggeeft.
Het stuk waar hij de OpenFileDialog opent en in een DataAdapter stopt
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| string location = ""; DialogResult dr = excelBrowser.ShowDialog(); if (dr == DialogResult.OK) { location = excelBrowser.FileName; } else { return null; } string full = Path.GetFullPath(location); string file = Path.GetFileName(full); string dir = Path.GetDirectoryName(full); csvConnection.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + dir + "; Extended Properties = \"Text;HDR=NO;FMT=Delimited(;)\""; csvConnection.Open(); csvAdapter = new OleDbDataAdapter(new OleDbCommand("SELECT * FROM " + file, csvConnection)); |
Dit gaat goed. Hij laad deze ook in en bind deze aan een DataGridView.
Vervolgens stop ik een aantal van deze regels in mijn eigen DataBase (Access). Klasse InternalDB.
Hierin staan alle adapters , dataset enz al gedefinieerd. (En werkt ook zoals het moet werken)
Maar doordat de OpenFileDialog gebruikt is . Werkt de DataAdapter.Update niet meer goed. Hij mist ineens kolommen en krijg bij de insert foutmeldingen dat Kolommen in de source terwijl die er wel degelijk zijn.
Exception : De instructie INSERT INTO bevat de volgende onbekende veldnaam: ArtikelColumn. Zorg ervoor dat u de naam correct hebt getypt en probeer het nogmaals.
Als ik nu de OpenFileDialog weghaal. een vast pad op geef. en hetzelfde doe. Dan werkt het wel goed en doet hij alles ook goed in de DB.
Voorbeeld
C#:
1
2
3
4
5
6
7
8
9
10
| string location = "Locatie CSV"; string full = Path.GetFullPath(location); string file = Path.GetFileName(full); string dir = Path.GetDirectoryName(full); csvConnection.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + dir + "; Extended Properties = \"Text;HDR=NO;FMT=Delimited(;)\""; csvConnection.Open(); csvAdapter = new OleDbDataAdapter(new OleDbCommand("SELECT * FROM " + file, csvConnection)); |
Heeft iemand een idee hoe het kan dat een OpenFileDialog ervoor zorgt dat dit fout gaat.