none
Erro na pesquisa de um inteiro RRS feed

  • Discussão Geral

  • Boa tarde!!!!!

    Estou a tentar fazer uma pesquisa de um inteiro, mas está a dar erro. Se me pudessem ajudar agradecia muito..Segue o código

    private void semanaTextBox_TextChanged(object sender, EventArgs e)
            {
                try
                {
    
                    this.imprimirPlaneamentoTableAdapter.FillByConsSemana(meuDataSet.ImprimirPlaneamento, semanaTextBox.Text);
                 
    
                }
                catch (System.Exception ex)
                {
                    System.Windows.Forms.MessageBox.Show(ex.Message);
                }
            }

    Agradeço desde já  a disponibilidade!!

    • Tipo Alterado Giovani Cr segunda-feira, 9 de dezembro de 2013 18:19
    terça-feira, 3 de dezembro de 2013 14:12

Todas as Respostas

  • Esqueci-me de dizer o erro.

    1. the best overloaded method macth for 'Meu.meuDataSerTableAdapters.ImprimirPlaneamentoTableAdapter.FillByConsSemana (Meu.meuDataSet.ImprimirPlaneamentoDataTable, int?)' has some invalid arguments

    2. Argument 2: cannot convert from 'string' to 'int?'

    terça-feira, 3 de dezembro de 2013 14:21
  • Aparentemente, você está tentando passar uma string onde só é aceito int.

    O valor da semanaTextBox é um número ou é texto?

    Se for número você pode realizar uma conversão de string pra int.

    Se for texto, é melhor rever o que você está querendo fazer.

    Até mais.

    terça-feira, 3 de dezembro de 2013 14:28
  • Eu quero guardar um intero, como faço para converter de string para inteiro? Pode-me ajudar?
    terça-feira, 3 de dezembro de 2013 14:50
  • Uma forma:

     Convert.ToInt32("<sua string>");

    Até mais.

    terça-feira, 3 de dezembro de 2013 14:59
  • Eu fiz o seguinte: 

    this.imprimirPlaneamentoTableAdapter.FillByConsSemana(meuDataSet.ImprimirPlaneamento, Convert.ToInt32("<semanaTextBox.Text>"));

    E ao tentar escrever por exemplo 4 dá o erro : input string was not in a correct format.

    terça-feira, 3 de dezembro de 2013 15:07
  • Eu fiz o seguinte: 

    this.imprimirPlaneamentoTableAdapter.FillByConsSemana(meuDataSet.ImprimirPlaneamento, Convert.ToInt32("<semanaTextBox.Text>"));

    E ao tentar escrever por exemplo 4 dá o erro : input string was not in a correct format.

    O Thiago quis dizer isso :

    this.imprimirPlaneamentoTableAdapter.FillByConsSemana(meuDataSet.ImprimirPlaneamento, Convert.ToInt32(semanaTextBox.Text));



    Diego Almeida Barreto
    System Analyst / Software Developer

    terça-feira, 3 de dezembro de 2013 15:45
  • Continua a não dar .. Dá  o erro : tipo de dados incorreto  na expressão de critérios.

    Desculpem...

    terça-feira, 3 de dezembro de 2013 15:54
  • Tenta assim

    int? valor = null;
    
    if(int.tryParse(semanaTextBox.Text, out valor))
    {
       valor = int.parse(semanaTextBox.Text);
    }
    
    this.imprimirPlaneamentoTableAdapter.FillByConsSemana(meuDataSet.ImprimirPlaneamento, valor );


    terça-feira, 3 de dezembro de 2013 16:05
  • private void semanaTextBox_TextChanged(object sender, EventArgs e)
            {
    
                
                try
                {
    
                    int? valor = null;
    
                    if (int.TryParse(semanaTextBox.Text, out valor))
                    {
                        valor = int.TryParse(semanaTextBox.Text);
                    }
    
                    this.imprimirPlaneamentoTableAdapter.FillByConsSemana(meuDataSet.ImprimirPlaneamento, valor);
    
                   // this.imprimirPlaneamentoTableAdapter.FillByConsSemana(meuDataSet.ImprimirPlaneamento, Convert.ToInt32(semanaTextBox.Text));
               
                   
                }
                catch (System.Exception ex)
                {
                    System.Windows.Forms.MessageBox.Show(ex.Message);
                }
            }

    Continua a dar erro.. 

    terça-feira, 3 de dezembro de 2013 16:15
  • Troca o 

      int? valor = null;

    Por 

      int  valor = 0;

    Ve se avança.

    terça-feira, 3 de dezembro de 2013 16:29
  • Não resolveu!!!

    Já não dá erro no código mas ao testar dá o mesmo erro:  tipo de dados incorreto  na expressão de critérios.

    terça-feira, 3 de dezembro de 2013 16:47
  • Patricia,

    Você consegue checar qual valor está vindo nessa textbox?

    Para garantir que é um inteiro válido?

    Esse erro costuma aparecer quando se tenta converter uma string que não representa um inteiro.

    terça-feira, 3 de dezembro de 2013 16:56
  • int? valor = null;
    int outValor = 0;
    
    if(int.tryParse(semanaTextBox.Text, out outValor ))
    {
       valor = int.parse(semanaTextBox.Text);
    }
    
    Tenta assim agora
    terça-feira, 3 de dezembro de 2013 16:56
  • Não Thiago, como faço isso?

    Rafael, já tentei continua com o mesmo erro : tipo de dados incorreto  na expressão de critérios.

    terça-feira, 3 de dezembro de 2013 17:08
  • Você sabe colocar um breakpoint no seu código?

    Caso não saiba esse tutorial explica como fazer

    http://www.codeproject.com/Articles/79508/Mastering-Debugging-in-Visual-Studio-2010-A-Beginn

    Dessa forma vc consegue ver o valor que está vindo.

    Ou você pode criar um 

    MessageBox.Show(semanaTextBox.Text);

    Antes de tentar realizar o IF, e veja o que é exibido. Depois você apaga isso obviamente.

    Mas ainda acho válido aprender a depurar o código caso não saiba.


    Depois de tudo isso, nos diga o que é que está vindo como valor.


    Até mais o/

    terça-feira, 3 de dezembro de 2013 17:14
  • Não sei se era isto!!

    terça-feira, 3 de dezembro de 2013 17:30
  • Legal... O valor é valido então...

    Se você tentar passar para a próxima linha, você consegue ou já da erro?

    terça-feira, 3 de dezembro de 2013 17:36
  • Pela imagem esta certo, qual linha esta dando erro, continua executando o codigo com f10

    Ou tenta deste modo

    int i;
    int? valor = int.TryParse (semanaTextBox.Text, out i) ? (int?) i : null;


    terça-feira, 3 de dezembro de 2013 17:37
  • fiz um teste e a validação de int? esta certa e o metodo aceitando esse tipo de entrada com o ultimo codigo que mandei, de uma olhada na imagem

    Segue o codigo

    static void Main(string[] args)
            {
                //string MeuTexto = "Fulano [foi a roma]";
                //string retorno = MeuTexto.Substring(MeuTexto.IndexOf('[')+1, MeuTexto.IndexOf(']') - MeuTexto.IndexOf('[') -1);
    
                ////bool teste = ValidarApenasLetras(bla);
    
                
                int i;
                string teste = "4";
                int? valor = int.TryParse(teste, out i) ? (int?)i : null;
                Console.Write("Testando Valor 4 : ");
                Console.Write(Validar(valor));
                Console.WriteLine(" ");
                Console.Write("Testando Valor XXX : ");
                teste = "XXX";
                valor = int.TryParse(teste, out i) ? (int?)i : null;
                Console.Write(Validar(valor));
    
                Console.ReadLine();
            }
    
            public static bool Validar(int? a)
            {
                if (a != null) return true; else return false;
            }
        }


    terça-feira, 3 de dezembro de 2013 17:52
  • Exprimentei isso e também não dá, dá o mesmo erro: 

                try
                {
    
                    int i;
                    int? valor = int.TryParse(semanaTextBox.Text, out i) ? (int?)i : null;
                    
                    this.imprimirPlaneamentoTableAdapter.FillByConsSemana(meuDataSet.ImprimirPlaneamento, valor);
       
                }
                catch (System.Exception ex)
                {
                    System.Windows.Forms.MessageBox.Show(ex.Message);
                }

    terça-feira, 3 de dezembro de 2013 18:25


  • Posta o metodo  FillByConsSemana e o objeto meuDataSet.ImprimirPlaneamento

    terça-feira, 3 de dezembro de 2013 18:46
  •  public virtual int FillByConsSemana(meuDataSet.ImprimirPlaneamentoDataTable dataTable, global::System.Nullable<int> semana)
    public ImprimirPlaneamentoDataTable ImprimirPlaneamento {
                get {
                    return this.tableImprimirPlaneamento;
                }
            }


    terça-feira, 3 de dezembro de 2013 19:25
  • Verifica se ao chamar o metodo o valor esta nulo
    meuDataSet.ImprimirPlaneamento
    terça-feira, 3 de dezembro de 2013 20:31
  • Não, não está!!

    quarta-feira, 4 de dezembro de 2013 08:43
  • O vAlor não, e sim o outro parametro, o ImprimirPlaneamento
    quarta-feira, 4 de dezembro de 2013 14:36
  • è isso certo??

    quarta-feira, 4 de dezembro de 2013 14:46