IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Import d'un CSV vers MySql


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Points : 12
    Points
    12
    Par défaut Import d'un CSV vers MySql
    Bonjour à tous !

    J'ai commencé aujourd'hui le .net en C# et j'ai donc réussi à faire ce qui est connection à la base de données MySql, et j'ai un petit soucis, je souhaiterai savoir (via source existante ou exemple) comment importer un .csv vers ma table mysql (Sim.T_Facturation), sachant que je récupère le nom de mon fichier .csv dans le FileopenDialog.

    Cordialement et merci

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Je ne sais pas s'il y a une méthode qui le fait directement.
    Mais si ce n'est pas le cas, tu peux toujours ouvrir le fichier et le lire (File et StreamReader), découper le contenun avec les méthodes de string.
    Puis envoyer les requêtes d'import à la base de données avec les paramètre récupéré du fichier.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Salut et merci, je voudrai savoir comment tu récup ton streamreader, il n'y a pas une référence à ajouter ?

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    de mémoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StreamReader sr = File.OpenText("le chemin complet du fichier");

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    donc j'ai avancé un peu parcontre le split pose probleme

    StreamReader sr = File.OpenText(openFileDialog.FileName);
    string txt;
    string cols;

    while(sr.BaseStream.EndRead)
    {
    sr.ReadLine();
    sr.ReadLine();
    cols = sr.ToString().Split(";","");
    String sql = "Insert into Sim.T_Facturation2....";

    }

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Plusieurs choses :

    1) pour le code utilise les balises de code (# dans l'éditeur)

    2) je regroupe tous les points dans ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    void readfile(string path)
    		{
    			StreamReader sr = File.OpenText(path);
    			string[] temp;
    			string[] sousblocs;
    			while(sr.Peek() != -1)
    			{
    				temp = sr.ReadLine().Split('<');
    				foreach(string bloc in temp)
    				{
    					sousblocs = bloc.Split(':');
    					foreach(string sousbloc in sousblocs)
    					{
    						richTextBox2.AppendText(sousbloc);
    					}
    				}
    			}
    		}
    Il devrait marcher mais je n'ai pas pu le tester car sharpdevelop fait des siennes. Une sombre histoire de mémoire partagée corronpue !!!
    Va savoir qui partage quoi, où, et avec qui !!!!

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Bonjour !!

    J'ai donc implémanté ton code dans le mien, et j'ai un soucis ici, il me dis que l'indice est en dehors, je pense que j'arrive pas bien a récup tous mes champs séparés dans mon split.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    			StreamReader sr = File.OpenText(openFileDialog.FileName);
    			
    			string numero;
    			string[] cols;
    			string oldnumero;
    			string datefacturation = "";
    			//Boucle pour le traitement du csv
    			while(sr.Peek()!= -1)
    			{
    				sr.ReadLine();
    				sr.ReadLine();
    
    				cols = sr.ToString().Split(';');
    				// Initialisation des variables
    				numero = cols[6];
    				oldnumero = cols[6];
    
    				while(numero != oldnumero) //Boucle d'import dans la base
    					datefacturation = datefacturation.Substring(10,4);
    
    					String sql = "Insert into Sim.T_Facturation2 (McuCode,Facturation)VALUES(" + cols[6] + ", + datefacturation + )";
    
    					try
    					{
    						myCon.ExecuteNonQuery(sql);
    					}
    					catch (Exception ex)
    					{
    						myLog.LogError(ex.Message, ex.Source);
    					}
    			}
    
    		}
    
    
    	}
    }

  8. #8
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Encore deux ou trois chose :
    1) sr.tostring() c'est pas cela.
    sr ne représente pas une ligne de ton fichier.
    sr représente le flux de celui-ci
    un ligne c'est sr.readline

    Si tu affiche dans la console sr.tostring tu devrais obtenir :
    streamreader.
    pas trop ce que tu veux


    2) en fait il n'y a pas de deux

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Nickel ca roule

    Si ya pas de deux, y a encore moins de trois

    Merci de ton aide l'ami

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. importation fichier csv vers mysql par php
    Par frboyer dans le forum Langage
    Réponses: 4
    Dernier message: 26/05/2009, 09h21
  2. [PHP 5.0] [CSV] Importation de données xls vers mysql
    Par beegees dans le forum Langage
    Réponses: 13
    Dernier message: 23/04/2009, 11h47
  3. [MySQL] Importation données csv vers mysql via php
    Par ariel257 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/06/2008, 16h56
  4. Importation d'un fichier .csv vers MySQL
    Par xenos dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/08/2007, 10h19
  5. [Conseil] Import de fichier CSV vers MySQL
    Par ShinJava dans le forum JDBC
    Réponses: 6
    Dernier message: 15/03/2005, 19h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo