Insérer des données dans une base de donnée locale au format sdf (sqlce) [Résolu]

Signaler
Messages postés
16
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
18 mai 2010
-
cs_julien040807
Messages postés
16
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
18 mai 2010
-
Bonjour,

Je vous expose mon problème : J'ai un fichier *.csv, j'ai crée une base de donnée locale sous visual studio 2008 et je voudrais importer les données contenues dans mon fichier *.csv dans ma base de donnée locale. Je n'ai pas encore trouvé la méthode qui me permet d'insérer correctement mes données (INSERT INTO), enfin plutôt, je ne vois pas comment l'utiliser... Cela fait deux trois jours que je suis dessus et je rame un peu ...

Si quelqu'un veut bien me donner les grandes lignes de la démarche à suivre, je lui en serai fort reconnaissant .

Bonne fin d'après midi !

Merci d'avance.

2 réponses

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
38
Salut

SqlCeConnection connexion = new SqlCeConnection("Data Source=MaBase.sdf;Persist Security Info=False;");
SqlCeCommand commande = new SqlCeCommand();
commande.Connection = connexion;
commande.CommandText = "INSERT INTO maTable (monChamp1, monChamp2) VALUES (@monChamp1, @monChamp2)";

StreamReader reader = File.Open("monFichier.csv", FileMode.Read);
string ligne;
string[] tableau;
connexion.Open();
while((ligne = reader.ReadLine()) != null)
{
    tableau = ligne.Split(';');
    commande.Parameters.Clear();
    commande.Parameters.Add(new SqlParameter("@monChamp1", Convert.ToInt32(tableau[0])));
    commande.Parameters.Add(new SqlParameter("@monChamp2", tableau[1]));
    commande.ExecuteNonQuery();
}
connexion.Close();
reader.Close();


Bien sûr, tu peux rajouter autant de champs que tu veux en modifiant la requête et en ajoutant des paramètres.
Le deuxième argument du constructeur doit être du bon type (donc tu dois par exemple convertir en int si le champ dans la base de données est un int. Cf le 1er paramètre dans mon exemple).

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
Messages postés
16
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
18 mai 2010

Salut, merci pour ta réponse !

Enfaite je bosse là dessus avec un ami, et su son pc aucun problème ... VS2008 gère très bien les bases de données locales ... et sur mon pc, comme souvent pour les produits Microsofts... je tombe sur une "Erreur inattendue .... Donc je me pose la question, si je vais perdre deux jours à désinstaller VS208 de mon poste pour le réinstaller ensuite ....

Vous avez quelque chose d'autre à me proposer ?



Bonne journée !!