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

Windows Forms Discussion :

Problème de convertion d'une variable.


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut Problème de convertion d'une variable.
    Bijour !

    Alors, j'ai une fonction qui est censé me retourné un int et cet int reçoit les données d'une requête SQL.
    Voici le 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
    public int SQL_1x1_int_string(string unChamp, string uneTable, string unChamp2, string unParam)
        {
            this.fctConnectDB();
            OdbcCommand cmdSelect = new OdbcCommand();
            cmdSelect.Connection = connectionDB;
            cmdSelect.CommandText = "SELECT " + unChamp + " FROM " + uneTable + " WHERE " + unChamp2 + " = '" + unParam + "'";
            OdbcDataAdapter my_DA = new OdbcDataAdapter(cmdSelect);
            DataTable my_DT = new DataTable();
            my_DA.Fill(my_DT);
     
            int uneDonnee = my_DT.Rows[0][unChamp] as int;
            this.fctDisconnectDB();
            return uneDonnee;
        }
    Cependant, j'ai une erreur lors de l'éxécution :
    L'opérateur as doit être utilisé avec un type référence ou un type nullable ('int' est un type de valeur non-nullable)
    Et j'ai beau changer le type de convertion (j'ai essayé un case ou de faire un System.Convert.ToInt32(my_DT.Rows[0][unChamp]) mais rien ne change :/

    Quelqu'un voit d'où vient le problème ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int uneDonnee = (int)my_DT.Rows[0][unChamp];
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int uneDonnee = Convert.ToInt32(my_DT.Rows[0][unChamp]);
    ?

  3. #3
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Oui c'est ce que j'ai essayé :
    Citation Envoyé par DarkSeiryu
    Et j'ai beau changer le type de convertion (j'ai essayé un cast ou de faire un System.Convert.ToInt32(my_DT.Rows[0][unChamp]) mais rien ne change :/

  4. #4
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Euh, j'suis en train de me dire que j'ai pas précisé quelques trucs ^^

    En fait c'est pour un site Web et si je lance le débogage du code (avec F6), il ne me renvoie aucune erreur, mais lorsque que je demande qu'il m'affiche la donnée retournée avec cette méthode dans un label de ma page Web, il me sort une erreur différente selon si je fais avec le cast ou avec le Convert :
    cast :
    System.InvalidCastException: Le cast spécifié n'est pas valide.
    Convert :
    System.FormatException: Le format de la chaîne d'entrée est incorrect.
    :/

  5. #5
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Tu es sur du type de l'objet renvoyé par my_DT.Rows[0][unChamp] ?
    Au besoin, regarde ce que renvois my_DT.Rows[0][unChamp].GetType() et my_DT.Rows[0][unChamp].ToString()

  6. #6
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    J'ai fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string test = my_DT.Rows[0][unChamp].GetType().ToString();
    Quand je lance le débogage avec un point d'arrêt sur la ligne citée au dessus, test contient "System.String".

    C'est donc là qu'on me dit, "ben au lieu de faire une conversion, fais en sorte que ce soit un string qui reçoive la donnée en question et que ta méthode retourne un string".
    Oui mais non, parce que j'ai besoin d'afficher un int, et qu'une autre méthode me retourne un string.

    Donc, qu'est-ce qui bug ?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/09/2006, 12h22
  2. problème de ddénomination d'une variable
    Par baudmail dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/04/2006, 12h52
  3. Problème d'appels d'une variable entre fonctions
    Par julien.nasser dans le forum MFC
    Réponses: 12
    Dernier message: 26/04/2006, 09h23
  4. Problème de restitution d'une variable.
    Par flyflo dans le forum C++
    Réponses: 4
    Dernier message: 22/01/2006, 15h10
  5. Réponses: 1
    Dernier message: 21/12/2005, 19h08

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