Je comprend pas, après création des champs dans la base, j'ai encore une Classe SqlCeException...
Version imprimable
Je comprend pas, après création des champs dans la base, j'ai encore une Classe SqlCeException...
L'erreur est la suivante : Le nom de colonne n'est pas valide, node name <if any>, column name = vitamineD. Je tiens a preciser que la requete marche quand je la fait manuellement.
Il ne faut pas faire de concaténation pour créer ta requête. A la place il faut utiliser les requêtes paramétrées.
Ce n'est pas obligatoire mais très très très très fortement recommendé.
Tu évites de nombreux problèmes (dont certains critiques => injections sql), ça rend ton code plus indépendant de la base de données utilisée et c'est surtout beaucoup plus lisible.
Si tu trouves un seul inconvénient à utiliser les requêtes paramétrées comparé à la concaténation je serais heureux de l'entendre.
Le seul inconvénient c'est que j'ai 27 lignes de requetes a refaire, vu que je suis un peu fainéant ça me soule déjà :roll:
Voici le code avec les requetes paramatrés, j'ai toujours la même erreur mais avec les proteines brutes.
Comme je te l'avais préciser dans mon post avec ma première solution, l'utilisation des requêtes paramétrées est quand même souhaitable. Je vais me pencher un peu sur ton nouveau code.Citation:
- Comme on te l'a préciser dans un poste précédent, utiliser les requêtes paramétrés peut t'éviter bcp de problème et rendre ton code plus lisible.
J'ai trouvé !!!
J'ai le message d'erreur suivant :
Si tu prends les éléments de ton code suivant :Citation:
Un SqlCeParameter avec ParameterName «*AGSaturé*» n'est pas contenu dans ce SqlCeParameterCollection."
Moi je pense qu'il y a un 'S' en trop ;-). Sans cette erreur la cela tourne parfaitement chez moi (insertion de 1440 lignes).Code:
1
2
3
4
5
6
7
8
9 // Partie de ta requête d'Insert "@Lipides, @AGSaturé, @VitD, @VitK, @VitC, @VitB2, @VitB3, @VitB5, // Déclaration de ton paramètre : commande.Parameters.Add("@AGSaturés", SqlDbType.NVarChar, 4); // Ligne ou tu initialises la valeur : commande.Parameters["@AGSaturés"].Value = data[28].ToString();
Maintenant petit conseil quand tu bosses avec des bases de données, évite tout les caractères spéciaux (à part le '_'), les caractères accentués etc, cela ne passe pas sur tout les système. Et personnellement je préfère le nom des champs en majuscule.
Si tu as une autre erreur j'ai remarqué que ta string de connexion ne pointe peut-être pas vers la DB de ce programme (Ca me rappelle le programme que tu as posté par erreur).
Ici en pointant la DB fournie dans l'archive, le fichier .csv récupéré sur le site dont tu avais donné le lien + la correction citée ci-dessus cela fonctionne.Code:
1
2 string cn = @"Data Source=C:\Users\Rémi\Downloads\LE PTUT\LE PTUT\Programme_PC_PTUT\MyDatabase#1.sdf;Password=11102495";
Merci à tous , tout a fonctionné !!
Merci des conseils infosam
Merci pour cet exemple
Me voici enfin devant un exemple que je comprends pour aller d'un fichier CSV jusqu'à une table SQL CE !