Ik heb een probleem met het uitlezen van een CSV bestand via MS Jet OLEDB. Op de PC waarop ik deze applicatie maak draait onderstaande code zonder problemen (Win7, 64bit, VS2008Pro) maar op de PC waar deze applicatie op moet gaan draaien werkt 't niet. Ik krijg op die PC (WinXPSP2, 32bit) de volgende foutmelding:
Dit is de code waarbij het fout gaat:
Mis ik iets? Het rare is dat 't op een andere Windows XP PC dan weer wel werkt...
Ik heb al wat rondgestruind op internet maar de antwoorden die ik heb gevonden zijn niet echt behulpzaam. De foutmelding doet vermoeden dat er iets in de query niet klopt... maar op andere PC's wel?
Ik heb ook al naar de regional settings gekeken maar die staan op alle PC's gelijk.
code:
1
2
| "No value given for one or more required parameters." System.Exception System.Data.OleDb.OleDbException |
Dit is de code waarbij het fout gaat:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| using (DataTable dt = new DataTable()) { try { string dir = @"C:\SapWorkDir\"; //the location of the source csv file string file = @"ProductionList.CSV"; //the source csv file string cs = "Provider=Microsoft.Jet.OLEDB.4.0;" //the connection string + "Data Source=\"" + dir + "\\\";" + "Extended Properties=\"text;HDR=YES;FMT=Delimited(,)\""; string query = "SELECT FORMAT([S Date],'00000000') as [FSTAD]," //the query, note the formatting options, without it... + "FORMAT([S Time],'00:00:00') as [FSTAU]," //...the date and time fields would have no leading zero! + "FORMAT([E Date],'00000000') as [SENDD]," + "FORMAT([E Time],'00:00:00') as [SENDU]," + "[Order #] as [PLNUM]," + "MID([Resource],2,8) as [PLNNR]" + " FROM " + file + " ORDER BY [Resource] ASC"; OleDbDataAdapter da = new OleDbDataAdapter(query, cs); //data-adapter for the csv file try { da.Fill(dt); } //fill the datatable catch (Exception ex) { err.Text = ex.Message.ToString(); //set the text of the error label to the error message } return dt; //return the datatable } catch (Exception ex) { err.Text = "parseCSV: " + ex.Message; //set the text of the error label to the error message } |
Mis ik iets? Het rare is dat 't op een andere Windows XP PC dan weer wel werkt...

Ik heb al wat rondgestruind op internet maar de antwoorden die ik heb gevonden zijn niet echt behulpzaam. De foutmelding doet vermoeden dat er iets in de query niet klopt... maar op andere PC's wel?
Ik heb ook al naar de regional settings gekeken maar die staan op alle PC's gelijk.
[ Voor 5% gewijzigd door Mesjefskie op 17-12-2009 15:11 . Reden: Toegevoegd wat ik zelf al gedaan heb... hoe ineffectief ook... ]