IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#] Problème requête update via OdbcDataAdpter


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par défaut [C#] Problème requête update via OdbcDataAdpter
    Bonjour !

    J'ai une erreur lorsque j'essaie de faire un update sur une table via OdbcDataAdapter.

    Voilà mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
        public void IAmConnected()
        {
            DataSet oDataSet;
            OdbcDataAdapter oDataAdapter;
     
            BD bd = new BD();
            OdbcConnection con = bd.Connect();
            oDataAdapter = new OdbcDataAdapter("select * from connected", con);
            oDataSet = new DataSet("Connected");
            oDataAdapter.Fill(oDataSet, "Connected");
     
     
            oDataAdapter.InsertCommand = new OdbcCommand("INSERT INTO connected(LOGIN) Values(@LOGIN)", con);
            oDataAdapter.InsertCommand.Parameters.Add("@LOGIN", OdbcType.NVarChar,15, "LOGIN");
     
            DataRow oDataRow;
            oDataRow = oDataSet.Tables["Connected"].NewRow();
            oDataRow["LOGIN"] = HttpContext.Current.Session["ID"];
            oDataSet.Tables["Connected"].Rows.Add(oDataRow);
            try
            {
                oDataAdapter.Update(oDataSet, "Connected");
            }
            catch (Exception e)
            {
                Response.Write(e.Message.ToString());
            }
        }
    Dans un premier temps, je récupère le contenu de ma table dans un dataset.
    Puis j'ajoute une ligne à mon dataset
    Puis j'insère une commande à odbcdataadapter (ça je n'ai pas compris)
    Puis update.

    J'ai l'erreur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ERROR [HYT00] Le champ 'LOGIN' ne peut être vide (null)
    J'ai vérifier et
    HttpContext.Current.Session["ID"]
    n'est pas vide...
    Qu'est ce qui ne va pas dans ce code ??
    Merci pour vos réponses !!

  2. #2
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    Puis j'insère une commande à odbcdataadapter (ça je n'ai pas compris)
    En fait ton dataadapter peut exécuter toutes les requêtes CRUD sur ta table, à condition de lui fournir les commandes SQL à utiliser.
    En faisant ça, tu lui indique la commande Insert à utiliser.

    Sinon pour ton PB, je voit pas. J'ai essayer (mais avec SQL et pas ODBC) et ça fonctionne très bien.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par défaut
    Merci pour les explications.
    Peux tu me dire ce que le réprésente le symbole @ dans:
    oDataAdapter.InsertCommand = new OdbcCommand("INSERT INTO connected(LOGIN) Values(@LOGIN)",

  4. #4
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    le "@" siginifie qu'il s'agit d'un paramètre dans ta requête SQL

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par défaut
    Donc @LOGIN correspond à oDataRow["LOGIN"] ??

  6. #6
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    non en fait quand tu fait INSERT INTO connected(LOGIN) Values(@LOGIN), tu déclare la valeur de la colonne LOGIN comme étant une variable, nommée @LOGIN.

    Ensuite, quand tu fait oDataAdapter.InsertCommand.Parameters.Add("@LOGIN", OdbcType.NVarChar,15, "LOGIN"); tu déclare un paramètre associé à la varibale @LOGIN correspondant à la colonne LOGIN

    Enfin, quand tu fait oDataRow["LOGIN"] = "tada"; tu associe la valeur "tada" à la colonne LOGIN, or ton Parameter sait qu'à la colonne LOGIN est associée la variable @LOGIN

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème requète update, sql server 2000
    Par Guena5635 dans le forum Développement
    Réponses: 3
    Dernier message: 28/04/2008, 10h32
  2. Problème requète UPDATE + date
    Par gluc86 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 25/04/2008, 09h20
  3. [Débutant] Problème requête Update
    Par aure298 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/01/2008, 16h54
  4. Problème Requête UPDATE (ou pas)
    Par mastasushi dans le forum Access
    Réponses: 7
    Dernier message: 03/05/2006, 08h42
  5. [MySQL] problème requête UPDATE
    Par oceane751 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 23/10/2005, 18h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo