L'analyse CSV à l'aide de ole db à l'aide de C#
Je sais que ce sujet est fait à la mort, mais je suis à bout de ressources.
J'ai besoin d'analyser un fichier csv. C'est une jolie moyenne CSV et la logique d'analyse a été écrit à l'aide OleDB par un autre développeur qui a juré qu'il travail avant qu'il soit allé en vacances 🙂
CSV sample:
Dispatch Date,Master Tape,Master Time Code,Material ID,Channel,Title,Version,Duration,Language,Producer,Edit Date,Packaging,1 st TX,Last TX,Usage,S&P Rating,Comments,Replace,Event TX Date,Alternate Title
,a,b,c,d,e,f,g,h,,i,,j,k,,l,m,,n,
Le problème que j'ai est que j'obtiens des erreurs selon la chaîne de connexion j'essaie.
quand j'essaye de la chaîne de connexion:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source="D:\TEST.csv\";Extended Properties="text;HDR=No;FMT=Delimited"
J'obtiens l'erreur:
'D:\TEST.csv' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.
Quand j'essaye de la chaîne de connexion:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\TEST.csv;Extended Properties=Excel 12.0;
ou la chaîne de connexion
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\TEST.csv;Extended Properties=Excel 8.0;
J'obtiens l'erreur:
External table is not in the expected format.
J'envisage de jeter tout le code et commencer à partir de zéro. Il est évident que je fais de mal?
Vous devez vous connecter pour publier un commentaire.
Vous devez indiquer seulement le nom du répertoire dans votre chaîne de connexion. Le nom de fichier sera utilisé pour la requête:
Et au lieu de OleDB vous pouvez utiliser un décent CSV analyseur (ou un autre).
Autre solution consiste à utiliser TextFieldParser classe (partie de .Net framework lui-même.) https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualbasic.fileio.textfieldparser
De cette façon, vous n'avez pas à compter sur d'autres développeur qui a disparu pour les vacances. Je l'ai utilisé de nombreuses fois et n'ont pas frappé un hic.
J'ai posté ce du travail (donc je ne peux pas afficher un exemple de fragment. Je vais le faire quand je rentre à la maison ce soir).
Il semble que votre première ligne contient les noms de colonne, de sorte que vous devez inclure le HDR=OUI bien, comme ceci:
External table is not in the expected format.
encoreEssayer la chaîne de connexion:
External table is not in the expected format.
encore... 🙂The Microsoft Jet database engine could not find the object 'TEST$.txt'. Make sure the object exists and that you spell its name and the path name correctly.