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 :

Conflit entre ChekcBox (ASPX) et champ bit (SQL Server)


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Mars 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 112
    Par défaut Conflit entre ChekcBox (ASPX) et champ bit (SQL Server)
    Bonjour à Tous,

    Lors de test d'une page aspx, je rencontre l'erreur: "System.InvalidCastException: Le cast spécifié n'est pas valide" sur un champ bit et un contrôle CheckBox.

    Le champ dans SQL Server est codé de la manière suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    [PvAgRecu] [bit] NULL DEFAULT 0
    ...
    et dans aspx:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <asp:FormView...
    <asp:CheckBox ID="PvAgRecuCheckBox" runat="server" Checked='<%# Bind("PvAgRecu") %>' />
    ...
    Comment résoudre ce problème?

    Merci d'avance.

  2. #2
    Membre chevronné Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Par défaut
    Bonjour,
    En aspx ce n'est pas 1 ou 0 qu'il attend, c'est "True" ou "False" en toute lettre.
    Il faut donc un petit traitement simple avant à moins que tu puisse le configurer au niveau du sql je suis pas expert sur le sql.


  3. #3
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Mars 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 112
    Par défaut
    Merci jacky01 de ta réponse.
    Je sèche là, as-tu une piste?

  4. #4
    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
    passe plutot par un objet pour remplir ton formview ce sera plus propre.
    et c'est au niveau de la propriété de ton objet que tu gères le bit.
    dans un reader tu dois avoir une getbit ou un truc dans le genre.

  5. #5
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Mars 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 112
    Par défaut
    En plus l'erreur ne se produit qu'à l'affichage et à la modification, pas à l'insertion? Bizare!

  6. #6
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Mars 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 112
    Par défaut
    Merci rattlehead de ta proposition.
    Malheureusement pour le moment je ne maitrise pas encore l'accès aux données par l'objet, ça sera l'étape suivante de mon apprentissage.

  7. #7
    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
    dans ce cas modifie ce que tu renvoies depuis la BD. tu renvoies le type que supporte checkbox c'est à dire un boolean.

  8. #8
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Mars 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 112
    Par défaut
    Je regade. A+

  9. #9
    Membre chevronné Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Par défaut
    Salut, c'est normal que tu n'est pas le problème à l'insertion car tu doit passer par un dataset. Celui-ci gère les cast.

    Après si tu est vraiment coincé tu peu toujours passer par le code behind pour affecter la valeur de ta CheckBox.

    Comment fait tu la connexion avec la DB ? par les DataSet ?

  10. #10
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Mars 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 112
    Par défaut
    Salut jackuy01,
    Merci de ta suggestion, pour le moment j'utilise "SqlDataSource".

    J'essaie aussi d'utiliser Convert, malheureusement, je n'arrive pas à utiliser une variable car il me donne l'erreur de compilation ci-dessous.

    Message d'erreur du compilateur: CS0103: Le nom 'F103_Envoye' n'existe pas dans le contexte actuel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:CheckBox ID="F103_EnvoyeCheckBox" runat="server" Checked='<%# Convert.ToBoolean(@F103_Envoye) %>' />
    A+

  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
    normal il faut que tu fasses un bind(mavaleur) @truc il ne connait pas.

  12. #12
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Par défaut
    Sinon passe par le code behind pour faire ton convert, ça devrait fonctionner

  13. #13
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Mars 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 112
    Par défaut
    rattlehead, apparement Bin n'est n'est pas supporté par Convert car il modnne l'erreur suivante:

    Message d'erreur du compilateur: CS0103: Le nom 'Bin' n'existe pas dans le contexte actuel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:CheckBox ID="F103_EnvoyeCheckBox" runat="server" Checked='<%# Convert.ToBoolean(Bin("103_Envoye")) %>' />


    tortuegenie, merci de ta suggestion. J'essaie.

    A+

  14. #14
    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
    normal c'est Bind comme tu l'avais fait un peu plus haut.

  15. #15
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Mars 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 112
    Par défaut
    Re-bonjour,

    Je viens de résoudre ce problème en remplaçant tout simplement "CheckBox" par "input".
    Les peux de choses que "j'ai compris"; apparement CheckBox dans ASP.NET liée avec un champ bit (boolean) de SQL Server cause de soucis, pouvez-vous me le confirmer? Bien que les 2 produits sont du même éditeur et sont les dernières versions avec les SP à jour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <%-- <asp:CheckBox ID="PvAgRecuCheckBox" runat="server" '<%# Eval("PvAgRecu") %>' /> --%>
     
    <input id="inpPvAgRecu" runat="server" type="checkbox" checked='<%# Eval("PvAgRecu") %>' />
    Merci.A+

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

Discussions similaires

  1. [AC-2010] Conflit entre requête, relations et champs relationnels nuls
    Par Beaver dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 30/03/2015, 16h47
  2. Champ Image SQL Server 2005
    Par digital prophecy dans le forum Bases de données
    Réponses: 0
    Dernier message: 20/12/2007, 13h04
  3. champ image sql server
    Par jupiter35 dans le forum C++
    Réponses: 2
    Dernier message: 13/07/2007, 15h24
  4. Réponses: 6
    Dernier message: 31/05/2007, 15h54
  5. Type "Bit" SQL server en XML lors d'une XMLInstruc
    Par mchicoix dans le forum XMLRAD
    Réponses: 3
    Dernier message: 15/02/2006, 15h44

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