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 :

Bizarre: GridView ne récupère pas une valeur d'un champs :/


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 24
    Par défaut Bizarre: GridView ne récupère pas une valeur d'un champs :/
    Bonjour à tous, je suis en train de développer une application ASP.NET / C#, et depuis hier soir je coince sur un problème incompréhensible...

    Alors voilà, lors de la modification d'un produit dans l'interface formulaire, au départ je remplie tous les champs avec les données stockées dans la base ACCESS, balance le tout dans un gridView caché, puis remplie les champs à partir des cells du gridView.
    Tout marche super, à part un champs OUI/NON que j'associe à une checkBox (Dieu sait pourtant que j'en ai d'autres identiquement faits côté BDD et côté code).

    Seulement voilà, rien à faire, en mode debug, je systématiquement mon "GridViewHidden.Rows[0].Cells[42].Text" avec la valeur : "" ...

    J'ai checké que c'était bel et bien la cell 42, c'est véridique, dans la base ACCESS, je vois bien "0" ou "-1" selon que la checkBox soit checkée ou pas...

    Bref, je suis un peu perdu sur le pourquoi du comment de ce problème... J'espère que vous pourrez m'éclairer... Voilà les parties utiles du 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
     
    private void populateFieldsFromDB()
        {
            DataSet dataset_itemGrid = new DataSet();
            GridView GridViewHidden = new GridView();
            OleDbConnection maConnection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\[...].accdb;Persist Security Info=False;");
            string sql = "SELECT * FROM MATABLE WHERE ID = " + id + "";
            OleDbDataAdapter monAdapter = new OleDbDataAdapter(sql, maConnection);
            maConnection.Open();
            monAdapter.Fill(dataset_itemGrid);
            GridViewHidden.DataSource = dataset_itemGrid;
            GridViewHidden.DataBind();
            maConnection.Close();
     
    [...]
    //(edit, je m'étais trompé de ligne... 
     
    if (GridViewHidden.Rows[0].Cells[42].Text == "-1")
            {
                CheckBox_XXXX.Checked = true;            
            }
    Mon champs est tel quel dans les propriétés dans la base.
    Merci d'avance.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    Salut,

    je n'ai jamais travaillé avec une BDD access mais normalement si tu as déclaré ton champs avec un type bit tu ne peux avoir que 0 et 1 et pas 0 et -1...

  3. #3
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 24
    Par défaut
    Sous ACCESS le type "OUI/NON" se traduit en dur dans la base par "0/-1".

    Et le problème vient du fait que la datagrid ne remplit pas le champs "OUI/NON" par quoique ce soit... :/

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    c'est une checkbox qui se trouve dans "GridViewHidden.Rows[0].Cells[42]" ?
    Tu as deja été voir les controles qui se trouvent dans cette cellule?

  5. #5
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 24
    Par défaut
    non... voilà les étapes utiles:

    -je crée un nouveau formulaire;
    -je coche ou pas la checkBox;
    -je valide;
    -> dans la base, le champs récupère "0" ou "-1"/"1" (même chose)
    -je modifie le même formulaire;
    -> je SELECT * dans un gridView;
    -> si la valeur du champ correspondant à la donnée checkBox est = "0", alors checkbox.checked = true; / sinon checkbox.checked = false;


    Mais la valeur du champs du dataGrid est tout le temps = ""; ...

  6. #6
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 24
    Par défaut
    J'ai réglé mon problème en utilisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT IIF(ChampBool,"oui","non")
    Comme ça, c'est fait, je récupère la valeur enfin!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/05/2008, 13h51
  2. Réponses: 3
    Dernier message: 31/10/2007, 11h46
  3. "Si" ce n'est pas une valeur
    Par Martinfootplus dans le forum Excel
    Réponses: 2
    Dernier message: 06/08/2007, 00h50
  4. radiobutton erreur n'est pas une valeur entière correcte
    Par pierrot67 dans le forum Bases de données
    Réponses: 3
    Dernier message: 12/03/2006, 21h27
  5. erreur '' n'est pas une valeur entière correcte
    Par ffxlenoir dans le forum Langage
    Réponses: 5
    Dernier message: 02/12/2005, 13h57

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