Fichier CSV ---> BDD

bobjoumi Messages postés 24 Date d'inscription mercredi 2 mai 2007 Statut Membre Dernière intervention 12 mai 2009 - 8 avril 2009 à 08:44
bobjoumi Messages postés 24 Date d'inscription mercredi 2 mai 2007 Statut Membre Dernière intervention 12 mai 2009 - 8 avril 2009 à 09:57
Bonjour voila mon code :

            if (System.IO.File.Exists("\fichier.csv"))
            {

                StreamReader sr = null;
                string line;

                try
                {                   
                    sr = new StreamReader("\fichier.csv");
                   
                    line = sr.ReadLine();
                    while (line != null)
                    {
                        line = sr.ReadLine();
                    }
                   
                }
                finally
                {
                    if (sr != null) sr.Close();
                }
            }

avec ce code je récupère dans la variable "line" chaque ligne de mon fichier.
la phase suivant et que dans cette ligne il détecte les ";" et ensuite le mètre dans un dataset pour l'intègres dans la BDD le truc c'est que je sais le dire mais pas tro le fair....

pouvez vous m'aidez SVP

2 réponses

billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
8 avril 2009 à 09:16
Bonjour,

Concernant les insertions de fichiers CSV dans une base de données, tu peux utiliser la commande BULK INSERT.
MSDN: http://msdn.microsoft.com/fr-fr/library/ms188365.aspx
http://dotnetslackers.com/Community/blogs/xun/archive/2008/04/15/sql-bulk-insert-and-ado-net-sqlbulkcopy.aspx

Des exemples d'utilisation en .Net:
- http://weblogs.sqlteam.com/mladenp/archive/2006/08/26/11368.aspx
- http://dotnetslackers.com/articles/ado_net/SqlBulkCopy_in_ADO_NET_2_0.aspx

Tu devrais y trouver ton bonheur.

Bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
0
bobjoumi Messages postés 24 Date d'inscription mercredi 2 mai 2007 Statut Membre Dernière intervention 12 mai 2009 2
8 avril 2009 à 09:57
merci mais je suis en Compact Framework et tous les classes ne sont pas présente alors voila ce que jais fais je vais tester si sa marche:;

if (System.IO.File.Exists("fichier.csv"))

{


StreamReader sr = null;

string line;


try

{

//chaine de connexion

string connectString = condatabul;

//Objet de connexion

SqlCeConnection connection = new SqlCeConnection(connectString);

string sSQL = "INSERT INTO client
(code_cli,code_site,nom,add_cli,add_clic,code_postale,ville) VALUES
(?,?,?,?,?,?,?)";

SqlCeCommand sqlcmd = new SqlCeCommand(sSQL, connection);


// Ouverture du fichier et écriture du contenu du fichier sur la console

sr = new StreamReader("fichier.csv");


line = sr.ReadLine();

while (!sr.EndOfStream)

{

SqlCeParameter co = new SqlCeParameter("code_cli", SqlDbType.NVarChar);

co.Value = line.Split(';')[0];

SqlCeParameter si = new SqlCeParameter("code_site", SqlDbType.NVarChar);

si.Value = line.Split(';')[1];

SqlCeParameter no = new SqlCeParameter("nom", SqlDbType.NVarChar);

no.Value = line.Split(';')[2];

SqlCeParameter ad = new SqlCeParameter("add_cli", SqlDbType.NVarChar);

ad.Value = line.Split(';')[3];

SqlCeParameter ac = new SqlCeParameter("add_clic", SqlDbType.NVarChar);

ac.Value = line.Split(';')[4];

SqlCeParameter pt = new SqlCeParameter("code_postale", SqlDbType.NVarChar);

pt.Value = line.Split(';')[5];

SqlCeParameter vl = new SqlCeParameter("ville", SqlDbType.NVarChar);

vl.Value = line.Split(';')[6];


sqlcmd.Parameters.Add(co);

sqlcmd.Parameters.Add(si);

sqlcmd.Parameters.Add(no);

sqlcmd.Parameters.Add(ad);

sqlcmd.Parameters.Add(ac);

sqlcmd.Parameters.Add(pt);

sqlcmd.Parameters.Add(vl);


//ouverture

connection.Open();

//commande exectuter a chaque saut de ligne

sqlcmd.Prepare();

sqlcmd.ExecuteNonQuery();


if (connection.State == ConnectionState.Open)

{

connection.Close();

}

//saut de ligne

line = sr.ReadLine();

}


}

catch (SqlCeException ex)

{

MessageBox.Show("erreur SQL inattendue.\n" + ex.Message, "Erreur");

}

catch (Exception ex)

{

MessageBox.Show("erreur interne inattendue.\n" + ex.Message, "Erreur");

}

finally

{

// Fermeture streamreader

if (sr != null) sr.Close();

}

}
0
Rejoignez-nous