So che ho questo problema più e più volte quando distribuisco la mia applicazione su un nuovo server perché sto usando questo driver per connettersi a un file Excel. Quindi ecco cosa sto facendo ultimamente.
C'è un Windows Server 2008 R2, installo i driver di accesso per una macchina x64 bit e mi libero di questo messaggio, il che mi rende molto felice solo per imbatterci in un'altra.
Questo qui sotto funziona splendidamente sulla mia macchina di sviluppo ma sul server mi dà un errore anche dopo aver installato i driver ODBC più recenti, il che penso sia questo il problema, ma questo è il modo in cui l'ho risolto.
private const string OledbProviderString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\OlsonWindows.xls;Extended Properties=\"Excel 8.0;HDR=YES\"";
sostituisco con il nuovo fornitore come questo qui sotto:
private const string OledbProviderString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OlsonWindows.xlsx;Extended Properties='Excel 12.0;HDR=YES;';";
Ma come faccio questo, c'è una cosa che si dovrebbe notare. Utilizzando l'estensione del file .xlsx e la versione di Excel è 12.0.
Dopo mi trovo in questo messaggio di errore di errore: "Impossibile trovare ISAM installabile", decido di cambiare le cose un po 'come di seguito:
private const string OledbProviderString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OlsonWindows.xls;Extended Properties='Excel 8.0;HDR=YES;';";
e sì, ho finito con quella cosa brutta, ma qui ho ricevuto un altro messaggio Il motore di database di Microsoft Access non può aprire o scrivere sul file 'time_zone'. È già aperto esclusivamente da un altro utente, o è necessaria l'autorizzazione per visualizzare e scrivere i suoi dati. che mi dice che non sono lontano dal risolverlo.
Forse c'è un altro processo che ha aperto il file nel frattempo e tutto ciò che devo fare è un riavvio e tutto inizierà in modo fluido come previsto.
Inoltre presta particolare attenzione alle istruzioni su quel collegamento :) – Mark
Ho avuto lo stesso problema. Ho cambiato la configurazione dell'applicazione in x86, quindi ha funzionato! –
ho anche dovuto modificare la stringa di connessione dall'utilizzo di Microsoft.Jet.OLEDB.4.0 a Microsoft.ACE.OLEDB.12.0 – Spikolynn