Usuário com melhor resposta
"Operação aritmética resultou em um estouro" quando gravo CPF no banco de dados

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
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.
- Editado pnet terça-feira, 3 de fevereiro de 2015 11:01
- Marcado como Resposta William John Adam TrindadeModerator terça-feira, 3 de março de 2015 15:09
Todas as Respostas
-
-
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
----------------------------------------------------------
-
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
-
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
-
-
-
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
----------------------------------------------------------
-
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.
- Editado pnet terça-feira, 3 de fevereiro de 2015 11:01
- Marcado como Resposta William John Adam TrindadeModerator terça-feira, 3 de março de 2015 15:09