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

C# Discussion :

update d'une base Oracle


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Août 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Août 2010
    Messages : 48
    Par défaut update d'une base Oracle
    Bonjour,

    Je suis en train de développer une appli C# se connectant à une base Oracle, et j'ai un soucis quand je veux faire un update.

    Sachant que item_id est un number(5) en base et this.id, un int valant 1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    cmd.Connection = conn.open_Connection();
    cmd.CommandText = "update " + schema + ".item set item_name= :1 where item_id = :10";
     
    //replacement of parameters
    cmd.Parameters.Add(new OracleParameter("1", OracleDbType.Varchar2, this.name, ParameterDirection.Input));
    cmd.Parameters.Add(new OracleParameter("10", OracleDbType.Int32, this.id, ParameterDirection.Input));
    cmd.CommandType = CommandType.Text;
     
    int rowsUpdated = cmd.ExecuteNonQuery();
    Dans ces conditions aucune mise à jour n'est faite. Mais si je remplace en dur ":10" par "1" - sachant qu'il y a bien un item_id valant 1 en base, ça marche.

    Quelqu'un aurait une idée, svp?

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Et si tu mets des noms à tes paramètres plutôt que des numéros ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Août 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Août 2010
    Messages : 48
    Par défaut
    Non, pas mieux ...
    A oui, aussi, quand je débuggue, cmd.Parameters contient bien, pour le paramètre qui m'intéresse (anciennement "98" et "id" maintenant) la valeur 1

  4. #4
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Et si tu essaies un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    cmd.Connection = conn.open_Connection();
    cmd.CommandText = "update " + schema + ".item set item_name= :Name where item_id = :Id";
     
    //replacement of parameters
    cmd.Parameters.Add("Name", OracleDbType.Varchar2);
    cmd.Parameters[0].Value =  this.name;
    cmd.Parameters.Add("Id", OracleDbType.Int32);
    cmd.Parameters[1].Value =  this.id;
     
    int rowsUpdated = cmd.ExecuteNonQuery();
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  5. #5
    Membre averti
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Août 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Août 2010
    Messages : 48
    Par défaut
    Bonjour,

    Non, j'ai le même comportement.
    J'ai l'impression que c'est plus un problème de format de mon id. Quand je débuggue, je vois bien que la paramètre de ma requête à une value à 1.

  6. #6
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Autre question que je me suis poser hier après t'avoir répondu, es tu sur que le type des valeurs que tu passes à tes paramètres correspondent bien au type que tu as donné aux paramètre ?

    Exemple OracleDbType.Varchar2 pour un string coté .Net ?
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

Discussions similaires

  1. [c#] Update d'une base Access
    Par elendila dans le forum ASP.NET
    Réponses: 65
    Dernier message: 09/09/2005, 09h23
  2. Migration d'une base oracle 8.i à une 8.0
    Par snold dans le forum Oracle
    Réponses: 2
    Dernier message: 10/08/2005, 16h15
  3. importer les données d'une base oracle
    Par hossni dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 07/07/2005, 16h33
  4. Outils de documentation d'une base oracle
    Par hatake.kakashi dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 03/02/2005, 08h44
  5. Tranfert de données d'une base Oracle vers PostGre
    Par Elois dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 27/01/2004, 18h08

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