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

narfight 129 Messages postés lundi 17 mars 2003Date d'inscription 4 mars 2010 Dernière intervention - 6 mars 2008 à 14:37 - Dernière réponse : cs_ninae 7 Messages postés mardi 17 février 2009Date d'inscription 18 octobre 2011 Dernière intervention
- 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 

Votre réponse

8 réponses

Meilleure réponse
cs_lim 329 Messages postés jeudi 20 novembre 2003Date d'inscription 10 mai 2014 Dernière intervention - 6 mars 2008 à 16:23
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

Merci cs_lim 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 82 internautes ce mois-ci

Commenter la réponse de cs_lim
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 7 mars 2008 à 08:40
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
narfight 129 Messages postés lundi 17 mars 2003Date d'inscription 4 mars 2010 Dernière intervention - 7 mars 2008 à 10:35
0
Merci
Merci beaucoup, c'est nikel lim
Commenter la réponse de narfight
cs_lim 329 Messages postés jeudi 20 novembre 2003Date d'inscription 10 mai 2014 Dernière intervention - 7 mars 2008 à 12:04
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
narfight 129 Messages postés lundi 17 mars 2003Date d'inscription 4 mars 2010 Dernière intervention - 7 mars 2008 à 13:22
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
cs_ninae 7 Messages postés mardi 17 février 2009Date d'inscription 18 octobre 2011 Dernière intervention - 10 oct. 2011 à 16:40
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
narfight 129 Messages postés lundi 17 mars 2003Date d'inscription 4 mars 2010 Dernière intervention - 10 oct. 2011 à 16:47
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
cs_ninae 7 Messages postés mardi 17 février 2009Date d'inscription 18 octobre 2011 Dernière intervention - 10 oct. 2011 à 17:28
0
Merci
merci je tient en compte votre conseil
Commenter la réponse de cs_ninae

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.