2013-06-14 1 views
2

J'ai un programme C# qui importe les données d'un fichier csv et place les données dans une table de base de données SQLServerCE (sur le lecteur C local). Le programme fonctionne sur de nombreuses machines des utilisateurs, mais quelques utilisateurs l'erreur persiste:Paramètre invalide dans la clé Excel de la section Moteurs du registre Windows

System.Data.OleDb.OleDbException (0x80004005): Invalid setting in Excel key of the Engines section of the Windows Registry. at 
System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) at 
System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at 
System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) at 
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at 
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at 
System.Data.OleDb.OleDbConnection.Open() 

Voici le code C#:

string connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathToFile + ";Extended Properties=Text;"; 
string sqlCmd = "SELECT * FROM [" + filenameOnly + "]"; 

using (OleDbConnection conn = new OleDbConnection(connStr)) 
{ 
    OleDbCommand cmd = new OleDbCommand(sqlCmd, conn); 
    using (OleDbDataAdapter dadapt = new OleDbDataAdapter(cmd)) 
    { 
    conn.Open(); 
    dadapt.TableMappings.Add("Table", dataSourceAlias); 
    dadapt.Fill(ds); 
    conn.Close(); 
    } 
} 

J'ai essayé plusieurs choses déjà:

  1. vérifié HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Jet \ 4 \ Engines \ Text a "CSVDelimited" pour e e Format clé
  2. vérifié les utilisateurs ont la version la plus récente de Jet4.0 (version 4.0.9511.0 Msjet40.dll Win dows XP SP3 et Bulletin de sécurité MS08-028)
  3. vérifié HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Jet \ 4.0 \ Engines \ Text n'a pas une extension de plus de 4 caractères

Mais, après tout cela, les utilisateurs ne peuvent toujours pas importer les données du fichier csv car "Paramètre invalide dans la clé Excel de la section Moteurs du Registre de Windows "

Des suggestions?

+0

L'avez-vous déjà vu: http://support.microsoft.com/kb/290068? – DonBoitnott

+0

J'ai modifié votre titre. S'il vous plaît voir, "[Les questions devraient inclure" tags "dans leurs titres?] (Http://meta.stackexchange.com/questions/19190/)", où le consensus est "non, ils ne devraient pas". –

+0

@DonBoitnott - merci pour la suggestion. J'ai essayé mais ça ne l'a pas corrigé. – 32Street

Répondre

0

trouvé une solution ..... HKEY_LOCAL_MACHINE Registry \ SOFTWARE \ Microsoft \ Jet \ 4 \ Engines \ item texte UseZeroMaxScanAs a été réglé sur "0" .... il fallait être changé pour "One" pour qu'il fonctionne correctement.

Merci pour toutes ces suggestions.

Questions connexes