Partage
  • Partager sur Facebook
  • Partager sur Twitter

Convertir un booléen en string

    12 avril 2021 à 20:15:50

    Bonjour, 

    j'ai rencontre un message d'erreur au niveau de mon code source. je n'arrive pas convertir un booléen en string 

     private void btnModifierAgent_Click(object sender, EventArgs e)
            {
                PL.FRM_Ajouter_Modifier_ListeAgent frmlistagent = new FRM_Ajouter_Modifier_ListeAgent(this);
                if(selectVerif()==null)
                {
                    for(int i=0; i<dtgInscription.Rows.Count;i++)
                    {
                        if((bool)dtgInscription.Rows[i].Cells[0].Value==true)
                        {
                            frmlistagent.txtID.Text =Convert.ToString(dtgInscription.Rows[i].Cells[1].Value);
                            frmlistagent.txtnomAgent.Text = dtgInscription.Rows[i].Cells[2].ToString();
                            frmlistagent.txtprenomAgent.Text = dtgInscription.Rows[i].Cells[3].ToString();
                            frmlistagent.dttimeAgent.Text = dtgInscription.Rows[i].Cells[4].ToString();
                            frmlistagent.txtlieuAgent.Text = dtgInscription.Rows[i].Cells[5].ToString();
                           
                            frmlistagent.txtNation.Text = dtgInscription.Rows[i].Cells[7].ToString();
                            frmlistagent.txtAdresseAgent.Text = dtgInscription.Rows[i].Cells[8].ToString();
                            frmlistagent.txttelephoneagent.Text = dtgInscription.Rows[i].Cells[9].ToString();
                            frmlistagent.txttelephoneagent.Text = dtgInscription.Rows[i].Cells[10].ToString();
                            frmlistagent.cbbFonction.Text = dtgInscription.Rows[i].Cells[11].ToString();
                        }
                    }
                    frmlistagent.lblTitre.Text = "Modifier un agent";
                    frmlistagent.button2.Visible = false;
                    frmlistagent.ShowDialog();
                }
                else
                {
                    MessageBox.Show(selectVerif(), "Modification", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

    Message d'erreur 



    • Partager sur Facebook
    • Partager sur Twitter
      12 avril 2021 à 22:27:27

      Le message d'erreur indique l'inverse, vous essayez de convertir "AGT36210001" en un Boolean.
      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        12 avril 2021 à 22:38:08

        j'aimerais le convertir en STRING.
        • Partager sur Facebook
        • Partager sur Twitter
          12 avril 2021 à 23:47:34

          "STRING" en C#, ça n'existe pas à la base. "string" ou "System.String" oui, "STRING" non.

          Selon toute évidence "AGT36210001" est déjà une chaîne de caractère. Il est peu probable que cela corresponde à autres choses ; l'appel de la méthode ToString qui renverrait cela sans être une chaîne de caractère ("string" ou "System.String") contenant ces caractères est très peu probable.

          Le message d'erreur montre que vous avez mal géré le DataBinding de votre DatGridView.

          Vous avez une chaîne de caractère en entrée et vous essayez (ou le code généré par de Designer graphique) de le faire entrer dans un Boolean (vraisemblablement une colonne de type checkBox).

          Le message d'erreur indique comment avoir plus d'information sur le problème.

          Donc le problème n'est pas de convertir votre bidule en chaîne de caractère, s'en est déjà une.

          Votre code montre que soit vous ne maîtrisez pas le DataBinding soit que vous aimez jouer dangereusement (car les DataGrid, ça sert à afficher des données, pas à les stocker comme un repository).

          Montrez-nous la tête de votre Designer Graphique et le code de votre formulaire, code généré par le Designer compris, SVP.

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            12 avril 2021 à 23:56:49

            D'accord voilà tout mon code 

            using System;
            using System.Collections.Generic;
            using System.ComponentModel;
            using System.Drawing;
            using System.Data;
            using System.Linq;
            using System.Text;
            using System.Threading.Tasks;
            using System.Windows.Forms;
            
            namespace GestionScolaire.PL
            {
                public partial class USER_ListeAgent : UserControl
                {
                    private static USER_ListeAgent Uselisteagent;
                    private dbGestionScoolContext db;
            
                    //creer une instance pour le usercontrole
                    public static USER_ListeAgent Instance
                    {
                        get
                        {
                            if (Uselisteagent == null)
                            {
                                Uselisteagent = new USER_ListeAgent();
                            }
                            return Uselisteagent;
                        }
                    }
                    public USER_ListeAgent()
                    {
                        InitializeComponent();
                        db = new dbGestionScoolContext();
                    }
                    //Ajouter dans le datagrid
                    public void Actualisedatagrid()
                    {
                        db = new dbGestionScoolContext();
                        dtgInscription.Rows.Clear();
                        //Pour affiché le nom de la fonction à partie de codeFonct
                        fonction fonct = new fonction();
            
                        foreach(var S in db.agents)
                        {
                            fonct = db.fonctions.SingleOrDefault(s => s.CodeFonct == S.CodeFonct);
                            if(fonct!=null)
                            {
                                ///ajouter les ligne dans le datagrid
                                dtgInscription.Rows.Add(S.CodeAgent, S.CodeAgent, S.NmAg, S.PrnmAg, S.DtNaisAg, S.LieuNaisAg, S.SexeAg, S.NotionAg, S.AdreAg, S.NumAg, S.EmailAg, fonct.fonction1);
                            }
                        }
                    }
                    /// <summary>
                    /// Pour verifier combien de ligne sont selectionné
                    /// 
                    public string selectVerif()
                    {
                        int nombreligne = 0;
                        for(int i=0; i<dtgInscription.Rows.Count;i++)
                        {
                            if ((bool)dtgInscription.Rows[i].Cells[0].Value == true)//si la ligne est selectionné
                            {
                                nombreligne++;//Le nombre de ligne 1
                            } 
                        }
                        if(nombreligne==0)
                        {
                            return "Selectioné l'Agent que vous voulez modifier";
                        }
                        if (nombreligne > 1)
                        {
                            return "Selectioné un seul l'Agent que vous voulez modifier";
                        }
                        return null;
                    }
                    
                    private void txtRecherche_Enter(object sender, EventArgs e)
                    {
                        if (txtRecherche.Text == "Recherche")
                        {
                            txtRecherche.Text = "";
                            txtRecherche.ForeColor = Color.Black;
                        }
                    }
            
                    private void btnAjouteInscription_Click(object sender, EventArgs e)
                    {
                        PL.FRM_Ajouter_Modifier_ListeAgent frmlistagent = new FRM_Ajouter_Modifier_ListeAgent(this);
                        frmlistagent.ShowDialog();
                    }
                   
                    private void btnModifierAgent_Click(object sender, EventArgs e)
                    {
                        PL.FRM_Ajouter_Modifier_ListeAgent frmlistagent = new FRM_Ajouter_Modifier_ListeAgent(this);
                        if(selectVerif()==null)
                        {
                            for(int i=0; i<dtgInscription.Rows.Count;i++)
                            {
                                if((bool)dtgInscription.Rows[i].Cells[0].Value==true)
                                {
                                    frmlistagent.txtID.Text =Convert.ToString(dtgInscription.Rows[i].Cells[1].Value);
                                    frmlistagent.txtnomAgent.Text = dtgInscription.Rows[i].Cells[2].ToString();
                                    frmlistagent.txtprenomAgent.Text = dtgInscription.Rows[i].Cells[3].ToString();
                                    frmlistagent.dttimeAgent.Text = dtgInscription.Rows[i].Cells[4].ToString();
                                    frmlistagent.txtlieuAgent.Text = dtgInscription.Rows[i].Cells[5].ToString();
                                   
                                    frmlistagent.txtNation.Text = dtgInscription.Rows[i].Cells[7].ToString();
                                    frmlistagent.txtAdresseAgent.Text = dtgInscription.Rows[i].Cells[8].ToString();
                                    frmlistagent.txttelephoneagent.Text = dtgInscription.Rows[i].Cells[9].ToString();
                                    frmlistagent.txttelephoneagent.Text = dtgInscription.Rows[i].Cells[10].ToString();
                                    frmlistagent.cbbFonction.Text = dtgInscription.Rows[i].Cells[11].ToString();
                                }
                            }
                            frmlistagent.lblTitre.Text = "Modifier un agent";
                            frmlistagent.button2.Visible = false;
                            frmlistagent.ShowDialog();
                        }
                        else
                        {
                            MessageBox.Show(selectVerif(), "Modification", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                
                    private void USER_ListeAgent_Load(object sender, EventArgs e)
                    {
                        Actualisedatagrid();
                    }
                }
            }
            



            -
            Edité par André Parfait 13 avril 2021 à 0:00:28

            • Partager sur Facebook
            • Partager sur Twitter
              13 avril 2021 à 9:19:56

              Code extrêmement maladroit malgré l'usage de concepts "évolués" comme un Singleton à moitié implémenté ou l'utilisation d'UserControle.

              Pensez à revoir un peu les bases de la conception SOLID.

              Je suppose que c'est ligne 61 ou 99 qu'il y a le "problème".

              Qu'est-ce qui vous certifie que "dtgInscription.Rows[i].Cells[0].Value" est "booleanisable" ?

              • Partager sur Facebook
              • Partager sur Twitter
              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                20 avril 2021 à 16:45:34

                le commentaire ligne 61 laisse à penser que l'on ne veut pas convertir la données mais savoir si elle est sélectionnée, ce que ne fait évidemment pas ce code.
                • Partager sur Facebook
                • Partager sur Twitter

                Convertir un booléen en string

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown