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 :

Specified cast is not valid


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 375
    Par défaut Specified cast is not valid
    Bonjour,

    J'ai un problème pour récupérer mes données à partir d'un reader (on alors pour l'insérer dans une textbox)

    voila le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    System.Data.OleDb.OleDbDataReader reader = executeQuery(sQuery, conn);
     
            reader.Read();
     
            tbTrigram.Text = reader.GetString(0);
            tbTLG_Mat.Text = reader.GetInt32(1).ToString();
    la ligne "tbTrigram.Text = reader.GetString(0);" Fonctione très bien mais la suivante génère l'erreur "Specified cast is not valid"
    Il y a bien un int a cet endroit sur ma requete, je ne comprends pas.
    Merci de jeter un oeil.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Jeter un œil sur ?

    Il manque clairement des éléments pour qu'on t'aide ou on doit deviner la structure de la base, la requête et les types de résultats retournés ?

    Parce que là comme ça ... tu me dis "ça retourne bien un int" mais y'a l'erreur "cast invalide" alors non ça retourne pas un int donc, on peut pas t'aider plus.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 375
    Par défaut
    OK..

    La requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    String sQuery = "select e.trigram, e.tlg_mat, e.firstname, e.lastname, e.login, e.birthdate, " +
                                "n.designation_nationality, e.address, e.zipcode, e.city, e.personalphone, " +
                                "e.professionnalphone, e.personalmobile, e.professionalmobile, e.personalemail, " +
                                "e.professionalemail, e.phoneextension, bu.designationbu, c.type_contract, " +
                                "e.codegestoria, e.startdate, e.commentemployee  " +
                            "from employee e  " +
                            "JOIN contract c on e.contract_idtype_contract = c.idtype_contract " +
                            "JOIN nationality n on e.nationality_idnationality = n.idnationality " +
                            "JOIN businessunit bu on e.businessunit_idbusinessunit = bu.idbusinessunit " +
                            "where e.trigram = '" + tbTrigram.Text + "'";
    Et voila mon script de création de la table employés.
    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
    CREATE TABLE Employee (
      Trigram VARCHAR2(10) NOT NULL,
      Contract_idType_contract NUMBER NOT NULL,
      BusinessUnit_idBusinessUnit NUMBER NOT NULL,
      Nationality_idNationality VARCHAR2(5) NOT NULL,
      TLG_Mat NUMBER NOT NULL,
      Login VARCHAR2(15) NOT NULL,
      LastName VARCHAR2(20) NOT NULL,
      FirstName VARCHAR2(20) NOT NULL,
      Address VARCHAR2(50) NULL,
      ZipCode NUMBER NULL,
      City VARCHAR2(30) NULL,
      BirthDate DATE NULL,
      PersonalEmail VARCHAR2(50) NULL,
      ProfessionalEmail VARCHAR2(50) NULL,
      PersonalPhone NUMBER NULL,
      ProfessionnalPhone NUMBER NULL,
      PersonalMobile NUMBER NULL,
      ProfessionalMobile NUMBER NULL,
      PhoneExtension NUMBER NULL,
      CommentEmployee VARCHAR2(100) NULL,
      CodeGestoria NUMBER NOT NULL,
      StartDate DATE NULL,
      CONSTRAINT pk_Employee_Trigram PRIMARY KEY(Trigram),
      CONSTRAINT fk_Employee_Contract_id_type_c FOREIGN KEY(Contract_idType_contract) REFERENCES CONTRACT(idType_contract),
      CONSTRAINT fk_Employee_Nationality_ID_Nat FOREIGN KEY(Nationality_idNationality) REFERENCES NATIONALITY(idNationality),
      CONSTRAINT fk_Employee_BusinessUnit_idBus FOREIGN KEY(BusinessUnit_idBusinessUnit) REFERENCES BUSINESSUNIT(idBusinessUnit)
    );

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Alors NUMBER c'est clairement pas un Int32.

    D'ailleurs, c'est loin d'être indiqué pour les données que tu sembles y stocker, sauf si tu souhaites écrire une application avec une base de donnée dont la taille explose et dont la lenteur deviendra légendaire.

    En plus, utiliser .NET avec NUMBER peut résulter en une perte de donnée : taille de NUMBER : 38 octets, taille maximale des types numériques .NET : 28 octets.

    Source : http://www.stanford.edu/dept/itss/do...eatures009.htm

  5. #5
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    Number c'est sous oracle il me semble. utilise donc OracleDbReader un truc dans genre. la dll doit pouvoir s'ajouter avec VS.

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 375
    Par défaut
    Je ne peux pas accéder à mes données avec un oledbreader ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Par défaut
    Citation Envoyé par rattlehead Voir le message
    Number c'est sous oracle il me semble. utilise donc OracleDbReader un truc dans genre. la dll doit pouvoir s'ajouter avec VS.
    C'est OracleDataReader.

    http://msdn.microsoft.com/fr-fr/libr...er(VS.80).aspx

    Si tu utilise cette classe tu as une méthode GetOracleNumber.

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 375
    Par défaut
    Alors obligé d'utiliser du code behind ?

  9. #9
    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
    Il semblerais d'après la MSDN que l'équivalent du type NUMBER sous Oracle soit un decimal en DotNet. A récupérer via GetOracleNumber du NameSpace System.Data.OracleClient (celui qu'il faut utiliser pour une connexion aux bases Oracle)

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Par défaut
    Citation Envoyé par Titi41 Voir le message
    Alors obligé d'utiliser du code behind ?
    Bah oui... Il faut séparer la couche graphique de la couche métier.

  11. #11
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    Tu peux utiliser oledbreader mais si tu sais que c'est oracle que t'utilise autant se servir de la dll oracle qui est plus optimisée qu'oledb.
    Sinon il faut que tu mettes ton code d'accès dans une library c'est plus propre.

  12. #12
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 375
    Par défaut
    Je vais essayer de passer avec oracleclient.
    J'espère que SharePoint va suivre.
    Merci. Et merci également pour le coup des NUMBER et de la taille, je n'y avais pas pensé

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

Discussions similaires

  1. [VB] Webbrowser et "Specified cast is not valid."
    Par oliverell62 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/06/2013, 07h57
  2. [VB.NET][ASP.Net]Specified cast is not valid
    Par Irish dans le forum ASP.NET
    Réponses: 2
    Dernier message: 13/12/2006, 12h35
  3. Réponses: 3
    Dernier message: 25/09/2006, 15h48
  4. Erreur "specified cast is not valid"
    Par [DreaMs] dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 30/01/2006, 21h15
  5. Problème "The specified service does not exist as an ..
    Par Rimak2 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 23/05/2005, 21h24

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