Aider avec une chaîne de connexion OleDB pour les fichiers excel
Le problème, je vais avoir, c'est que la carte de données est en regardant uniquement la première ligne de chaque colonne afin de déterminer le type de données. Dans mon cas, la première colonne "SKU" sont des chiffres pour les 500 premiers rangs puis-je arriver à avoir les articles qui sont mélangés des chiffres et des lettres. Donc ce qui arrive lignes dans la colonne SKU sont vides, mais j'ai toujours les autres informations pour chaque ligne de colonne.
Je crois que c'est la chaîne de connexion qui contrôle qui et avec mes paramètres actuels, il doit travailler, cependant il ne l'est pas.
Chaîne De Connexion:
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Nick\Desktop\Pricing2.xlsx" + @";Extended Properties=""Excel 12.0 Xml;HDR=Yes;IMEX=1;ImportMixedTypes=Text;TypeGuessRows=0""";
ImportMixedTypes=Text;TypeGuessRows=0
Devraient être les mots clés importants, regarder 0 lignes et il suffit d'utiliser le texte comme les types de valeur pour tout.
La "bandaid" j'ai mis c'est pour faire de la première ligne de la feuille de calcul d'un mélange de lettres et de chiffres et de laisser la ligne dans ma requête.
- Avez-vous essayé les différents fournisseurs, comme le JET au lieu de ACE? Jetez un oeil ici pour d'autres possibles de la chaîne de connexion formats: connectionstrings.com/excel
- J'ai déjà été sur ce site et tout essayé. Je souhaite qu'il y ait une meilleure façon de le faire. Si ils veulent de la conception du système afin de prendre une longue chaîne dont ils ont besoin pour libérer un gratuit generator. Pouah...
- JET a toujours le même problème puisque les valeurs qui doivent être modifiées sont tous dans le registre, et ne peut pas être définie à partir de la chaîne de connexion.
Vous devez vous connecter pour publier un commentaire.
Malheureusement, vous ne pouvez pas définir de
ImportMixedTypes
ouTypeGuessRows
de la chaîne de connexion depuis ces paramètres sont définis dans le registre. Pour le ACE pilote OleDb, ils sont stockés àdans le registre. Donc, vous pouvez simplifier votre chaîne de connexion pour:
Une fois que vous
TypeGuessRows
à0
etImportMixedTypes
àText
dans le registre, vous devez obtenir le comportement que vous attendez. Vous pouvez, cependant, envisager d'utiliser un suffisamment grand nombre comme 1000 au lieu de zéro si vous trouvez des performances de l'importation à moins qu'idéales.Wow6432Node
dans la clé de registre de sorte qu'il devient:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
clé n'est présent que sur Windows 64 bits installations. en.wikipedia.org/wiki/WoW64Microsoft.Win32.Registry
classe, mais je ne dirais pas le faire à la volée juste avant l'ouverture de la connexion.