Domanda

In un'app .NET a 32 bit, posso usare questa stringa di connessione OLEDB per connettermi a un file CSV tramite ADO.NET:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\foo;"

o questo ODBC:

"Driver={{Microsoft Text Driver (*.txt; *.csv)}};Dbq=c:\foo"

Tuttavia, a quanto pare non esistono versioni a 64 bit dei driver Jet OLEDB o del driver di testo ODBC.

Potrei analizzare CSV riga per riga o eseguire l'app in modalità a 32 bit, ma idealmente mi piacerebbe solo trovare un driver diverso che funziona a 64 bit.

Qualche idea?

È stato utile?

Soluzione

Non è un driver, ma sono stato contento del lettore CSV di Sebastien Lorion. Nota che non l'ho mai usato in un ambiente a 64 bit, ma non sono a conoscenza di problemi di compatibilità.

http://www.codeproject.com/KB/database/CsvReader.aspx

Altri suggerimenti

Ho avuto lo stesso identico problema e dopo molte prove e amp; errore questo è quello che ho scoperto che ha funzionato:

1. Abilita procedure ad hoc

sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

2. Installa questo file sul server:

http: // www.microsoft.com/downloads/en/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en

3. Utilizza questo formato di query:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=C:\SQL\;HDR=Yes;','SELECT * FROM [test.csv]');

4. Abilitare le procedure di automazione OLE:

sp_configure 'show advanced options', 1;
GO
RECONFIGURE with override
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE with override;
GO

Alexis,

Hai bisogno di un driver? Se hai solo bisogno di leggere un file CSV riga per riga, ci sono un numero di parser gratuiti là fuori. Se devi anche scrivere un CSV, consulta FileHelpers .

Ho finito per convertire la mia applicazione a 32 bit perché stavo avendo lo stesso problema, anche se con l'accesso a un database di Microsoft Access. So che funzionerà, ma potresti non voler questa soluzione. Se qualcuno conosce la risposta a questa domanda, mi piacerebbe anche ascoltarla.

Sei fortunato: a dicembre 2010 Microsoft ha pubblicato un driver OLEDB a 64 bit per file CSV e XLSX!

Vedi questa risposta per link per il download, dettagli di installazione, connessione stringhe, ecc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top