Enregistrer des données dans une base SQL

Résolu
cs_PHILOUVB Messages postés 141 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 3 octobre 2010 - 3 févr. 2009 à 22:12
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 4 févr. 2009 à 20:56
 Bonsoir

J'essaye d'effectuer un enregistrement dans ma base et je tourne en rond.
Alors si vous trouvez ce qui cloche...

Dim MaConnexion
As OleDbConnection =
New OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
"C:\
"DataSecretPasse.mdb;Jet OLEDB)

Dim Enreg
As OleDbCommand = MaConnexion.CreateCommand

MaConnexion.Open()

Enreg.CommandText =
"INSERT INTO TableSecret (SiteInternet,Pseudo,MotPasse,AdresseInternet) VALUES ('" & TextSite.Text &
"','" & TextPseudo.Text &
"','" & TextMotPasse.Text &
"','" & TextAdresseSite.Text &
"')"

Enreg.ExecuteNonQuery()

Hélas, lorsque je ferme le programme et que je le relance, mes données ne sont pas enregistrées.

pouvez-vous m'expliquer pourquoi ?

Merci

PhilouVB

5 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
3 févr. 2009 à 22:25
Salut,

Regardes ta chaine de connection elle est bizarre, elle ne compile pas à vue de nez.

Ne pas mettre la base de données dans le répertoire bin
car elle est écrasée.

Bon dev
3
GarnierFlorian Messages postés 129 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 26 juillet 2011
4 févr. 2009 à 11:04
Hum si tu te ressert de ce que je t'ai déjà donné dans un autre post tu devrai pouvoir y arriver tout seul. Mais à vrai dire, je pense que ce n'est pas enregistré car il te faut au moins utiliser la fonction "ExecuteScalar()"...je pense que là tu exécute la requête mais les résultats ne sont pas utilisés.
Bon courage !
Peace

 
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
4 févr. 2009 à 12:58
@GarnierFlorian
excutescalar et executequery c'est pour les select

mais il est pas interdit de les utiliser poour des ordre insert

Pour les insert, update, delete c'est executenoquery
3
cs_PHILOUVB Messages postés 141 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 3 octobre 2010
4 févr. 2009 à 20:26
Bonsoir et tout d'abord un grand merci à tous les deux.

j'ai suivi le conseil de nhervagault et j'ai déplacé ma base de données.
Et la tout fonctionne correctement. Mes lignes de commandes étaient bonnes. J'ai juste modifié le chemin

J'ai deux  autres questions ou plutot une question et un conseil à demander.

1- Existe-t-il une commande pour obtenir le chemin par défaut de la base  de données ? et comment l'insérer dans une ligne de connection ?

2 - Lorsque je connecte ma base de données, j'ai pris pour habitude de la fermer systematiquement après une manipulation.
Est-il mieux de la laisser continuellement ouverte, pendant que le programme fonctionne et de la fermer à la cloture du programme. Ou bien est-il mieux de faire comme je fais, c'est à dire de la fermer après chaque instruction.

Merci et je vous dis à très bientot pour de nouvelles questions.

PhilouVB
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
4 févr. 2009 à 20:56
Donc ta chaine de connexion était fausse ;-)

1 -->
La chaine de connexion est à mettre dans le fichier app.config
http://msdn.microsoft.com/fr-fr/library/system.configuration.configurationmanager(VS.80).aspx

Comme pas besoin de recompiler le projet dans le cas de changement de place.

Sinon il est conseiller dans la mettre une classe de configuration
statique ou sigleton pour gere les connexions à la base de données et centraliser le maximum le code.

2 --> ADO.NET est fait pour fonctionner en mode déconnecté avec les datasets
ou en mode connecté avec les reader et les executequery

Moins le temps d'une connexion est important mieux c'est.

Moins de risque de verrouillage et moins de connections dans le pool de connexion de la base.

De plus ADO.NET a été fait pour faire du mode WEB ou client serveur.

Il est conseillé de mettre les fermetures des connections dans le bloc finally, pour etre sur des liberations de c'est derniere.
3
Rejoignez-nous