none
Erro em variável: Valor não pode ser nulo RRS feed

  • Pergunta

  • Olá , estou obtendo esse erro no código que segue , alguém pode me ajudar?

    An exception of type 'System.ArgumentNullException' occurred in mscorlib.dll but was not handled in user code

    Additional information: Valor não pode ser nulo.

    If there is a handler for this exception, the program may be safely continued.

    if (comboBox1.SelectedIndex >= 0)
                {
                    String tela = String.Empty;
                    Produto produto = ObtervalorProduto(comboBox1.Text);
                    textBox6.Text = produto.produto;// valor do produto que vem do bd 
                    tot = float.Parse(textBox6.Text = produto.produto);
                    totalcomp2 = tot;
                    totalcomp = totalcomp + tot;
                    textBox8.Text = totalcomp.ToString();
    
                    
    
                }
    

    segunda-feira, 20 de outubro de 2014 17:43

Respostas

  • O ideal é você sempre utilizar try..catch() e testar sempre esses valores nos parâmetros de sua função:

     try {
                    if (comboBox1.SelectedIndex >= 0)
                    {
                        String tela = String.Empty;
                        Produto produto;
                        if (comboBox1.Text != null)
                        {
                            produto = ObtervalorProduto(comboBox1.Text);
    
                            textBox6.Text = produto.produto;// valor do produto que vem do bd 
                            tot = float.Parse(textBox6.Text = produto.produto);
                            totalcomp2 = tot;
                            totalcomp = totalcomp + tot;
                            textBox8.Text = totalcomp.ToString();
                        }
                        else
                        {
                            MessageBox.Show("SELECIONE O PRODUTO");
                        }
                    }
                }catch(Exception ex)
                      {
                        throw new Exception("Erro "+ex.Message);
                     }

    segunda-feira, 20 de outubro de 2014 18:09
  • if (comboBox1.SelectedIndex >= 0)
                {
                    String tela = String.Empty;
                    Produto produto = ObtervalorProduto(comboBox1.Text);
                    textBox6.Text = produto.produto;// valor do produto que vem do bd 
                    tot = float.Parse(textBox6.Text = produto.produto);
                    totalcomp2 = tot;
                    totalcomp = totalcomp + tot;
                    textBox8.Text = totalcomp.ToString();
    
                    
    
                }
    Anna, revise o código em negrito. O que deseja fazer aqui? 
    segunda-feira, 20 de outubro de 2014 17:50

Todas as Respostas

  • if (comboBox1.SelectedIndex >= 0)
                {
                    String tela = String.Empty;
                    Produto produto = ObtervalorProduto(comboBox1.Text);
                    textBox6.Text = produto.produto;// valor do produto que vem do bd 
                    tot = float.Parse(textBox6.Text = produto.produto);
                    totalcomp2 = tot;
                    totalcomp = totalcomp + tot;
                    textBox8.Text = totalcomp.ToString();
    
                    
    
                }
    Anna, revise o código em negrito. O que deseja fazer aqui? 
    segunda-feira, 20 de outubro de 2014 17:50
  • O ideal é você sempre utilizar try..catch() e testar sempre esses valores nos parâmetros de sua função:

     try {
                    if (comboBox1.SelectedIndex >= 0)
                    {
                        String tela = String.Empty;
                        Produto produto;
                        if (comboBox1.Text != null)
                        {
                            produto = ObtervalorProduto(comboBox1.Text);
    
                            textBox6.Text = produto.produto;// valor do produto que vem do bd 
                            tot = float.Parse(textBox6.Text = produto.produto);
                            totalcomp2 = tot;
                            totalcomp = totalcomp + tot;
                            textBox8.Text = totalcomp.ToString();
                        }
                        else
                        {
                            MessageBox.Show("SELECIONE O PRODUTO");
                        }
                    }
                }catch(Exception ex)
                      {
                        throw new Exception("Erro "+ex.Message);
                     }

    segunda-feira, 20 de outubro de 2014 18:09
  • Valeu galera, mas o problema é que no meu if estava colocando >=0 , porque meu primeiro item do combo corresponde ao 0. mudei para >0 e funcionou.

    A propósito, como posso definir o item 0 como "selecione"?

    Obrigada !

     
    quinta-feira, 23 de outubro de 2014 03:01
  • Obrigada!
    quinta-feira, 23 de outubro de 2014 03:03
  • Bom dia Anna,

    Para deixar o SELECIONE como o primeiro item, você pode fazer da seguinte forma.

    comboBox1.Items.Add(new ListItem("Selecione", "9999"));
    comboBox1.Items[comboBox1.Items.Count - 1].Selected = true;

    Abs.


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx

    • Sugerido como Resposta Mr. GMSOFT quinta-feira, 23 de outubro de 2014 11:19
    quinta-feira, 23 de outubro de 2014 09:52