none
"Operação aritmética resultou em um estouro" quando gravo CPF no banco de dados RRS feed

  • Pergunta

  •  Estou com esse erro quando vou inserir o CPF no banco ACCES.

    Já tentei numeração menor e funcionou, porém CPF tem 11 dígitos.

    O cpf no banco é como texto.

    O código é o seguinte:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            If (CPFTextBox.Text = "" Or NOMETextBox.Text = "" Or CARGOSTextBox.Text = "" Or CARGOSTextBox.Text = "" Or SALARIOTextBox.Text = "" Or CONTATOTextBox.Text = "" Or SenhaTextBox.Text = "") Then
                Call Form1.erro(0)
            ElseIf SenhaTextBox.Text <> ConfSenhaTextBox.Text Then
                Call Form1.erro(2)
            Else
               FUNCIONARIOTableAdapter.FunInsertQuery(CPFTextBox.Text, NOMETextBox.Text, CARGOSTextBox.Text, SALARIOTextBox.Text, CONTATOTextBox.Text, SenhaTextBox.Text)
                Call Form1.cadok(True, "Funcionário")
                Me.Close()
            End If
        End Sub

               
    • Editado cristianofmc sexta-feira, 7 de novembro de 2014 20:37
    sexta-feira, 7 de novembro de 2014 16:41

Respostas

  • O que pode estar ocorrendo é que você deve ter definido 11 caracteres no banco e na aplicação está passando mais, provavelmente a máscara do cpf, aí de 11 pula para 14 caracteres.
    terça-feira, 3 de fevereiro de 2015 11:01

Todas as Respostas

  • E qual o tipo do campo? String ou Long?

    Marcio S Silva | MCP |marsosil@ovi.com|http://marsosi.blogspot.com.br

    sexta-feira, 7 de novembro de 2014 16:47
  • O tipo correto para armazenar CPFs seria string, pelo menos é a recomendaçao da SPED

    <simpleType name="st_CPF">
        <restriction base="string">
            <pattern value="[0-9]{11}"/>
        </restriction>
    </simpleType>

    <simpleType name="st_indicador">
        <restriction base="integer">
            <enumeration value="0"/>
            <enumeration value="1"/>
        </restriction>
    </simpleType>

    fonte:http://www.spedbrasil.net/forum/topics/introdu-o-b-sica-sobre-os-arquivos-xsd

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    sexta-feira, 7 de novembro de 2014 16:54
    Moderador
  •  Estou inserindo no banco diretamente do TextBox.Text, que tenho quase certeza que é tido como string

    Veja:   FUNCIONARIOTableAdapter.FunInsertQuery(CPFTextBox.Text


    • Editado cristianofmc sexta-feira, 7 de novembro de 2014 20:35
    sexta-feira, 7 de novembro de 2014 20:35
  • Em nenhum momento eu marquei ele como inteiro ou afins, por isso eu estou com dúvida :/

    Estou inserindo direto do TextBox


    • Editado cristianofmc sexta-feira, 7 de novembro de 2014 20:40
    sexta-feira, 7 de novembro de 2014 20:36
  • Bom dia,

    Isso acontece porque o valor que você está inserindo tem mais caracteres do que o campo aceita. Tente mudar o valor máximo de caracteres do campo.

    Abs.


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

    sábado, 8 de novembro de 2014 11:16
  • A minha principal dúvida é que eu estou trabalhando com um string, que era para aceitar mais de 11 caracteres
    segunda-feira, 10 de novembro de 2014 11:18
  • Uma string no lado da interface, mas e no banco? Como vc definiu este campo. Se houve uma mensagem de estouro é porque o tipo é numerico (nao importa como vc o definiu no lado da interface)

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    segunda-feira, 2 de fevereiro de 2015 14:31
    Moderador
  • O que pode estar ocorrendo é que você deve ter definido 11 caracteres no banco e na aplicação está passando mais, provavelmente a máscara do cpf, aí de 11 pula para 14 caracteres.
    terça-feira, 3 de fevereiro de 2015 11:01