ExecuteNonQuery: Connection property has not been initialized.

Résolu
narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010 - 6 mars 2008 à 14:37
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

8 réponses

cs_lim Messages postés 329 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 10 mai 2014 7
6 mars 2008 à 16:23
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
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 mars 2008 à 08:40
Ah ouais ? dingue...

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

pas simple, pas simple
0
narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010
7 mars 2008 à 10:35
Merci beaucoup, c'est nikel lim
0
cs_lim Messages postés 329 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 10 mai 2014 7
7 mars 2008 à 12:04
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
0

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

Posez votre question
narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010
7 mars 2008 à 13:22
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
0
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 à 16:40
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);
0
narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010
10 oct. 2011 à 16:47
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.
0
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
merci je tient en compte votre conseil
0
Rejoignez-nous