ExecuteNonQuery: Connection property has not been initialized. [Résolu]

Messages postés
129
Date d'inscription
lundi 17 mars 2003
Statut
Membre
Dernière intervention
4 mars 2010
- - Dernière réponse : cs_ninae
Messages postés
7
Date d'inscription
mardi 17 février 2009
Statut
Membre
Dernière intervention
18 octobre 2011
- 10 oct. 2011 à 17:28
Bonjours,
Je travail normalement en ADO (où je suis a coté de la plaque) et je voudrais faire une insertion dans la DB par ce code :
<hr size="2" width="100%" />            Conex.Open()
            DataAdapter = New OleDbDataAdapter("Select * FROM Traducs", Conex)

            DataAdapter.InsertCommand = New OleDbCommand("INSERT INTO Traducs (Lg, Txt) VALUES (" + Integer.Parse(Langue.English).ToString() + ", 'r')")
            DataAdapter.InsertCommand.Parameters.Add("Txt", OleDb.OleDbType.Char, 255, "Txt")

            DataAdapter.InsertCommand.Parameters.Item("Txt").Value = Text
            DataAdapter.InsertCommand.ExecuteNonQuery()
            Conex.Close()
            'Update the local variable for the next time
            Conteneur.Add(Text, Text)
<hr size="2" width="100%" />Malheureusement, la Ligne ExecuteNonQuery() me renvois l'erreur suivante : ExecuteNonQuery: Connection property has not been initialized.

Je ne comprend pas pourquoi et ça fait 1 heure que je suis dessus. Pouvez-vous m'aider ?

Merci d'avance,
Jean-Pierre Sneyers
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
329
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
10 mai 2014
4
3
Merci
Salut,

Dans cette ligne, tu déclare bien DataAdapter avec sa connexion
     DataAdapter = New OleDbDataAdapter("Select * FROM Traducs", Conex)

mais pas dans celle là, c'es le OledbCommand qui doit recevoir uen connexion ouverte à la BDD
            DataAdapter.InsertCommand = New OleDbCommand("INSERT INTO Traducs (Lg, Txt) VALUES (" + Integer.Parse(Langue.English).ToString() + ", 'r')",Conex)

@+
LIM

Dire « Merci » 3

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

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_lim
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57
0
Merci
Ah ouais ? dingue...

le dataAdapter a deja une connexion déclarée, faut en donner une aussi a son InsertCommand...

pas simple, pas simple
Commenter la réponse de Renfield
Messages postés
129
Date d'inscription
lundi 17 mars 2003
Statut
Membre
Dernière intervention
4 mars 2010
0
Merci
Merci beaucoup, c'est nikel lim
Commenter la réponse de narfight
Messages postés
329
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
10 mai 2014
4
0
Merci
RE

         Content que çà marche, voilà comment je m'y prends quand je développe un programme qui à besoin d'être relié à une BDD

   Je déclare dans un module 
      'Connexion au serveur
     Pulbic SQLCX as new SQLCONNEXION
     'Objet dataadpater
    Pulbic SQLDA as new SQLDATAADPATER
   'Objet command
    Pulbic SQLCOM as new SQLCOMMAND

dans l'initialisation de mon programme

      'Creation de la connexion au serveur
      SQLCX.CONNEXIONSTRING="ma connexion à la BDD"
      'Ouverture de la connexion
      SQLCX.OPEN
      'Mon objet commande reçoit la connexion ouverte à mon serveur de BDD
      SQLCOM.CONNEXION=SQLCX

      'Quand je utiliser une reqûete je fait
   
         SQLCOM.COMMANDTEXT="INSERT INTO..... (je tape ma requête SQL)"
         'Je donne au DataAdapter la requête et la connexion en même temps
         SQLDA.INSERTCOMMAND=SQLCOM
         'J'éxecute ma requête
         SQLDA.INSERTCOMMAND.EXECUTENONQUERY

   comme çà au final je n'ai qu'a me préocuper de ma requête SQL.
   ta méthode est aussi bonne, mais je préfère la mienne car elle me paraît plus lisible au final.

   bon code

@+
LIM
Commenter la réponse de cs_lim
Messages postés
129
Date d'inscription
lundi 17 mars 2003
Statut
Membre
Dernière intervention
4 mars 2010
0
Merci
Vi mais je dois parfois travaillé hors ligne sur mes DB, ta méthode ne semble pas le permetre si ??

Sinon merci pour ce complément
Commenter la réponse de narfight
Messages postés
7
Date d'inscription
mardi 17 février 2009
Statut
Membre
Dernière intervention
18 octobre 2011
0
Merci
Je travail en ADO et je voudrais faire une insertion dans la DB par ce code :
public bool save()
{
int resultat = 0;
try
{
string query = "INSERT INTO utilisateur (User_Name, Password) " + " VALUES(@user, @pass);";
OleDbCommand comm = new OleDbCommand(query, dbconnection);
comm.Parameters.AddWithValue("@user", User);
comm.Parameters.AddWithValue("@pass", Pass);
comm.ExecuteNonQuery();
}
catch (OleDbException e)
{
MessageBox.Show(e.Message);
}
return (resultat == 1);
Commenter la réponse de cs_ninae
Messages postés
129
Date d'inscription
lundi 17 mars 2003
Statut
Membre
Dernière intervention
4 mars 2010
0
Merci
Salut,
Déterrage de poste de il a 3an + une question qui ne décrit en rien ton problème + sans un bonjour/merci = aucune chance d'avoir une réponse.

Crée toi donc un nouveau sujet de discutions sur le forum, décrit CLAIREMENT et de façon détaillé ton problème et n'oublie pas la politesse de base.
Commenter la réponse de narfight
Messages postés
7
Date d'inscription
mardi 17 février 2009
Statut
Membre
Dernière intervention
18 octobre 2011
0
Merci
merci je tient en compte votre conseil
Commenter la réponse de cs_ninae