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

Messages postés
16
Date d'inscription
mardi 26 janvier 2010
Dernière intervention
18 mai 2010
- - Dernière réponse : cs_julien040807
Messages postés
16
Date d'inscription
mardi 26 janvier 2010
Dernière intervention
18 mai 2010
- 10 mars 2010 à 11:07
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.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
3
Merci
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é. -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de krimog
Messages postés
16
Date d'inscription
mardi 26 janvier 2010
Dernière intervention
18 mai 2010
0
Merci
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 !!
Commenter la réponse de cs_julien040807

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.