Csv base de données c#

Fermé
Mopadi - 14 janv. 2016 à 17:56
ryko1820 Messages postés 1645 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 - 14 janv. 2016 à 23:57
Bonjour,
J aimerai avoir un renseignement concernant l implémentation d un code C# me permettant d enregistrer sur une base de données toutes les entrées d un document Csv correctement formaté.
Jusqu a présent j'utilisais entity framework, mais pour passer du csv a la base de données il me faut faire une boucle, qui lit chaque ligne, crée un objet et l enregistre dans la bdd.
Malheureusement mes documents font des milliers de ligne et c est trop long.
J ai cru voir que avec mysql c était gère nativement et que je pouvais peut être envoyer directement le contenu d un Csv dans une table et bien plus rapidement.

Ma question c est quelle base de données je dois utilisais qui m aiderai à gérer et traiter toutes mes données venant d un CSV bien plus rapidement si possible.
Je suis ouvert à toute proposition, oracle mysql, sql server ou mongodb ou autre.

Dans l avenir mon site devrai être en ligne, donc j espère que la solution propose ne sera pas trop difficile à mettre en place haha.

Je peux suivre toute sorte de tutoriel, donc j aimerai juste savoir dans lequel je devrai me lancer, et si pouviez aussi me dire pourquoi tel ou tel solution.

Merci

Envoyé de mon iPhone

2 réponses

Whismeril Messages postés 19040 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 mai 2024 932
14 janv. 2016 à 18:19
Bonsoir,

qu'est ce qui prend le plus de temps?

La lecture du csv avec création d'objets, ou la sauvegarde dans la bdd?

Coté bdd, je suis incompétent, mais je peux peut être t'aider à optimiser la première partie.
0
Merci pour ta réponse, mais en faite j aimerai éviter toute la partie traitement, lecture ligne par ligne etc. J aimerai savoir si il existe un package avec une bdd qui enregistre le csv direct dans une table de la base de données en mode plus direct sans effectuer tout les calculs.

Merci
0
Whismeril Messages postés 19040 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 mai 2024 932
14 janv. 2016 à 23:38
Comme je te l'ai dit j'en sais rien, je dirais qu'Access sait lire sans code un csv...

Mais par C# "sans boucle"à proprement parlé, je sais faire.... avec Linq.
0
ryko1820 Messages postés 1645 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
Modifié par ryko1820 le 15/01/2016 à 00:37
Je dirais volontiers sans plus de recherche, que compte tenu de l'ancienneté du format de données considéré (le CSV), la quasi totalité (si ce n'est la totalité) des bases de données évoquées plus haut disposent en natif de possibilité d'importation de CSV.

Exemple MYSQL : https://www.mysqltutorial.org/basic-mysql-tutorial-aspx/import-csv-file-mysql-table/

ou Oracle : http://www.orafaq.com/node/848

en utilisant BULK INSERT ou bcp avec SQL Server

etc ...

Pas besoin de coder l'import, il faut utiliser l'interface prévue par chaque BDD, ce qui sera très probablement le plus performant et le plus simple.

Là ou il pourrait être intéressant de coder l'import c'est si on veut pouvoir disposer d'une solution indépendante de la base de données (fonctionnant avec n'importe quelle base de données), dans l’éventualité ou cette solution devrait être distribuée.

Même dans ces cas là il existe des outils comme https://csvkit.readthedocs.io/en/0.9.1/
(voir csvsql)

You may stop me but you can't stop us all   ;-)
0