none
Erro: "Cadeia de entrada não estava em um formato incorreto. " RRS feed

  • Pergunta

  • Alguém pode me ajudar com esse erro?

    Cadeia de entrada não estava em um formato incorreto.

    a parte do código que está dando erro é na minha conversão dos dados:

     

     

    Equipamentos equipamentos = new Equipamentos()

                                                {

                                                      Fornecedor= Convert.ToInt16(DropDownListFornecedor.SelectedValue),

                                                      NSerie = TextBoxNSerieEquipamento.Text,

                                                      Tipo = Convert.ToInt16(DropDownListTipo.SelectedValue),

                                                      Marca = Convert.ToInt16(DropDownListMarca.SelectedValue),

                                                      Modelo = Convert.ToInt16(DropDownListModelo.SelectedValue),

                                                      Funcionario = Convert.ToInt32(DropDownListFuncionario.SelectedValue),

                                                      Login = Convert.ToString(Session["login"])

                                                };

     

     

    Obrigado e Aguardo Respostas..

     

    sexta-feira, 14 de outubro de 2011 18:28

Respostas

  • Imagino... Veja se a carga dos controles está dentro do IsPostback:

     

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //Carregue seus controles
            }
        }
    


     


    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    • Editado Paulo César Viana sexta-feira, 14 de outubro de 2011 20:02
    • Sugerido como Resposta Paulo César Viana sexta-feira, 14 de outubro de 2011 20:06
    • Marcado como Resposta M4Y4N sexta-feira, 14 de outubro de 2011 20:21
    sexta-feira, 14 de outubro de 2011 20:01
  •            ListItem item = new ListItem();
                item.Text = "";
                item.Value = "0";
                item.Selected = true;
                DropDownList1.Items.Add(item);
    


    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    • Marcado como Resposta M4Y4N sexta-feira, 14 de outubro de 2011 20:23
    sexta-feira, 14 de outubro de 2011 20:08

Todas as Respostas

  • Fornecedor e Login são strings, confirma?

     

    No login faça: Login = Session["login"].ToString();

     Evite utilizar Int16. Utilize Int32.


    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    sexta-feira, 14 de outubro de 2011 18:49
  • Fornecedor INT 32

    Login String 

     

    Usei  Login = Session["login"].ToString();

     

    mas continua dando o erro.. alguma sugestão?

     

    Valeu

    • Editado M4Y4N sexta-feira, 14 de outubro de 2011 19:14
    sexta-feira, 14 de outubro de 2011 19:10
  • Poste sua classe Equipamentos para Eu ver...

    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    sexta-feira, 14 de outubro de 2011 19:19
  •  public class Equipamentos
        {
            public Int32 Fornecedor { get; set; }
            public string NSerie { get; set; }
            public Int16 Tipo { get; set; }
            public Int16 Marca { get; set; }
            public Int16 Modelo { get; set; }
            public Int32 Funcionario { get; set; }
            public string Login { get; set; }
            
        }
    sexta-feira, 14 de outubro de 2011 19:19
  • Use int.... e não Int16. Se o numero for muito grande vai dar erro...

    To desconfiando que é os valores que você está recuperando. Estou testando aqui e posto já um código.

    public class Equipamento
    {
        public int Fornecedor { get; set; }
        public string NSerie { get; set; }
        public int Tipo { get; set;}
        public int Marca { get; set; }
        public int Modelo { get; set; }
        public int Funcionario { get; set; }
        public string Login { get; set; }
    }


    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    sexta-feira, 14 de outubro de 2011 19:24
  • Coloque um breakpoint e veja o preenchimento das linhas... com isto você vai pegar onde está o erro.

    Faça assim:

    Equipamentos equipamentos = new Equipamentos();
    equipamentos.Fornecedor= Convert.ToInt16(DropDownListFornecedor.SelectedValue);
    equipamentos.NSerie = TextBoxNSerieEquipamento.Text;
    equipamentos.Tipo = Convert.ToInt16(DropDownListTipo.SelectedValue);
    equipamentos.Marca = Convert.ToInt16(DropDownListMarca.SelectedValue);
    equipamentos.Modelo = Convert.ToInt16(DropDownListModelo.SelectedValue);
    equipamentos.Funcionario = Convert.ToInt32(DropDownListFuncionario.SelectedValue);
    equipamentos.Login = Session["login"].ToString();
    



    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    sexta-feira, 14 de outubro de 2011 19:28
  • Estar dando erro nos dropdownlist, eles estão carregando com 0, o textbox passa normal... imagina o que pode ser?

    Desculpa sou iniciante no C#

     

    Obrigado

    • Editado M4Y4N sexta-feira, 14 de outubro de 2011 19:44
    sexta-feira, 14 de outubro de 2011 19:38
  • No carregando dos meus dropdown usei:

     

    //DropDownListFuncionario.Items.Insert(0, new ListItem(string.Empty, string.Empty));

                    //DropDownListFuncionario.SelectedIndex = 0;

     

    comentei e testei.. funcionou...

    Será que esse é o problema? Existe outra forma de eu trazer um valor vazio no meu drop como padrão? ao carregar a página?

     

    Valeu

    sexta-feira, 14 de outubro de 2011 20:01
  • Imagino... Veja se a carga dos controles está dentro do IsPostback:

     

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //Carregue seus controles
            }
        }
    


     


    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    • Editado Paulo César Viana sexta-feira, 14 de outubro de 2011 20:02
    • Sugerido como Resposta Paulo César Viana sexta-feira, 14 de outubro de 2011 20:06
    • Marcado como Resposta M4Y4N sexta-feira, 14 de outubro de 2011 20:21
    sexta-feira, 14 de outubro de 2011 20:01
  • Sim estar.. carrego todos no pageLoad e IsPostback
    • Editado M4Y4N sexta-feira, 14 de outubro de 2011 20:04
    sexta-feira, 14 de outubro de 2011 20:03
  • No carregando dos meus dropdown usei:

     

     

    //DropDownListFuncionario.Items.Insert(0, new ListItem(string.Empty, string.Empty));

                    //DropDownListFuncionario.SelectedIndex = 0;

     

     

    comentei e testei.. funcionou...

    Será que esse é o problema? Existe outra forma de eu trazer um valor vazio no meu drop como padrão? ao carregar a página?

     

    Valeu

    Faça:

               ListItem item = new ListItem();
                item.Text = "";
                item.Value = "0";
                item.Selected = true;
                DropDownList1.Items.Add(item);
    



    Agora valide antes para garantir que o usuario selecionou algo.

    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    sexta-feira, 14 de outubro de 2011 20:08
  •            ListItem item = new ListItem();
                item.Text = "";
                item.Value = "0";
                item.Selected = true;
                DropDownList1.Items.Add(item);
    


    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    • Marcado como Resposta M4Y4N sexta-feira, 14 de outubro de 2011 20:23
    sexta-feira, 14 de outubro de 2011 20:08
  • Funcionou.. o problema estava no IsPostBack, estava carregando sempre meus controles.

    Mas agora funcionou legal..

     

    Obrigado....

    sexta-feira, 14 de outubro de 2011 20:22