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

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

2 réponses

Répondre au sujet
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 10 mars 2010 à 10:39
+3
Utile
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é. -
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de krimog
cs_julien040807 16 Messages postés mardi 26 janvier 2010Date d'inscription 18 mai 2010 Dernière intervention - 10 mars 2010 à 11:07
0
Utile
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.