Le format de la string d'initialisation n'est pas conforme à la spécification OLE DB

Je reçois l'erreur suivante lorsque je tente de lire un file Excel à l'aide d'un composant tiers

Le format de la string d'initialisation n'est pas conforme à la spécification OLE DB

Maintenant, je sais que les mots "composant tiers" vont triggersr des cloches d'alarme ici, mais entendez-moi.

Voici la string de connection que j'utilise

Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\users\rory\downloads\testdb_4.xls; Extended Properties='Excel 8.0;HDR=YES;'; 

J'ai défini cette string de connection exacte sans problème avec le code C # suivant

 using (OleDbConnection conn = new OleDbConnection()) { DataTable dt = new DataTable(); conn.ConnectionSsortingng = connssortingng; using (OleDbCommand comm = new OleDbCommand()) { comm.CommandText = "select * from [TEST_DB$]"; // TEST_DB is the name of the sheet comm.Connection = conn; using (OleDbDataAdapter da = new OleDbDataAdapter()) { da.SelectCommand = comm; da.Fill(dt); // do stuff with dt } } } 

Cela fonctionne comme prévu, et la database est remplie de données du file Excel. Cependant, lorsque j'essaie d'y accéder à partir du composant, j'ai l'erreur ci-dessus.

Je ne suis pas un expert sur OLE DB, mais j'ai eu l'printing que les pilotes sont au niveau du operating system et, s'ils travaillent pour une string d'application / connection, ils devraient travailler pour toutes les applications avec cette même string de connection. Ai-je tort? Et si oui, est-ce que quelqu'un a l'indice de ce qui se passe ici?

J'ai contacté le support pour le composant.

La solution à cette fin a été de replace les citations simples par des doubles échappées.

  ssortingng conn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=C:\users\rory\downloads\testdb_4.xls;" + "Extended Properties='Excel 8.0;HDR=YES;'"; // single quotes 

devenu

  ssortingng conn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=C:\users\rory\downloads\testdb_4.xls;" + "Extended Properties=\"Excel 8.0;HDR=YES;\""; // escaped double quotes 

OleDbConnection n'a eu aucun problème avec des guillemets simples, mais apparemment certaines applications et composants le font.