Bonjour,

J'ai un petit souci qui me laisse perplexe.
J'utilise un OleDbCommand pour faire une requête SQL sur un fichier .CSV
Une requête très simple puisque c'est un bon gros "SELECT * FROM".

Derrière ce FROM se trouve le chemin de mon fichier.
Cette requête fonctionne très bien si le chemin de mon fichier est un chemin accessible sans espace (enfin a priori c'est ce que je dirais, après avoir fait quelques tests différents )

Sinon, je me tape l'exception OleDbException et qui me renvoi comme message : "Erreur de syntaxe dans la clause FROM" :s

Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
31
32
33
34
35
36
37
38
39
40
41
 
private int CreateBloc(int indDebut, string Nom, string FileName)
        {
            try
            {
                Dictionary<string, string> Dic = new Dictionary<string, string>();
 
                String conn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\;
                Extended Properties=""Text;HDR=No;FMT=Delimited""";
 
                OleDbConnection cn = new OleDbConnection(conn);
                OleDbCommand cmd = new OleDbCommand(@"SELECT * FROM " + FileName, cn);
                OleDbDataAdapter da = new OleDbDataAdapter(cmd);
                cn.Open();
 
                DataTable dt = new DataTable();
                da.Fill(dt);
 
                var x = from v in dt.AsEnumerable()
                        select new
                        {
                            Col1 = v[indDebut - 1],
                            Col2 = v[indDebut]
                        };
 
                foreach (var va in x)
                    if (va.Col1.ToString() != "")
                        Dic.Add(va.Col1.ToString(), va.Col2.ToString());
 
                Bloc b = new Bloc(Nom, Dic);
                _Parent.addIntoList(b);
 
                cn.Close();
                return 0;
            }
            catch (OleDbException ex)
            {
                MessageBox.Show(ex.Message);
                return -1;
            }
        }
Donc si mon FileName est C:\blocs\test.csv -> aucun problème
Si j'ai :
C:\blocs tests\test.csv -> exception
C:\blocs\bloc test.csv -> exception

Que "l'espace" soit présent dans le nom du fichier même ou dans son Path, l'exception survient. J'ai essayé de jouer avec la class Path pour refabriquer un path correct en pensant que ca venait de là mais rien n'y fait.

Si je mets un chemin en dur sans espace, parfait, sinon exception :s
Quelqu'un pour m'éclairer ?
Merci