Usuário com melhor resposta
msg de erro: o valor viola o limite max lenght desta coluna

Pergunta
-
O quadro do problema é o seguinte:
- aplicação Windows forms com visual basic e ferramenta VisalStudio 2017
- banco de dados sql server localdb definido dentro do visual studio usando designer
- tabela DadosPessoais, coluna TelResidencial, char(14) - para poder conter os caracteres de separação: (11) 9999 9999
- no formulário, TelResidencialTextbox com maxlenght padrão: 32767
- um evento Leave para este textbox: TelResidencialTextBox.Text = "(" + mid(TelResidencialTextBox.Text, 1, 2) + ") " +
mid(TelResidencialTextBox.Text, 4, 4) + "" + mid(TelResidencialTextBox.Text, 9, 4)
- no click do botão Salvar a mensagem de erro: "....o valor viola o limite maximo MaxLenght desta coluna
- até agora não consegui encontrar solução para esse erro
- quando usei o MaskedTextBox para esse controle ocorria o mesmo erro
- sou iniciante no visual studio no visual basic, alguém poderia me ajudar?
Respostas
-
Olá Mariano, tudo bem?
Olha, estou lhe comunicando que acabei por resolver o problema.
Tratava-se de uma divergência de valores entre o DataSet e a tabela de dados.
Ao configurar valores diferentes daqueles que acompanham a definição dos tipos de campo na tabela, havemos que tomar o cuidado de também faze-lo na configuração do DataSet. Exemplo: quando configuramos a tabela e colocamos o tipo de dado como varchar essa definição vem acompanhada de um valor entre parêntesis varchar(50). Esse valor é o MaxLenght no DataSet. Se optarmos por modifica-lo para maior haveremos que alterá-lo também no MaxLenght do DataSet. Fiz as correções da forma como explanei e ficou tudo ok. Agradeço seu empenho.
- Sugerido como Resposta Mariano1776 sábado, 24 de fevereiro de 2018 20:18
- Marcado como Resposta ravazoni domingo, 25 de fevereiro de 2018 14:11
Todas as Respostas
-
-
Ola Mariano
Grato pelo retorno. Fiz o que vc sugeriu e o msgbox mostra o dado conforme a formatação.
exemplo: digito 1144870711 e é mostrado (11) 4487 0711
porém na hora de salvar o registro aparece a mesma mensagem de violação do maxlenght
-
-
Bom dia Mariano
Abaixo segue o codigo de inserção do registro.
O Try-Catch bem como MsgBox foram introduzidos na rotina automatica padrão da ferramenta.
Novamente agradeço sua ajuda. Abç
Private Sub DadosPessoaisBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles DadosPessoaisBindingNavigatorSaveItem.Click
Try
Validate()
DadosPessoaisBindingSource.EndEdit()
TableAdapterManager.UpdateAll(BDAgendaDataSet)
MsgBox("Operação de atualização de registro efetuada com sucesso.")
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub -
Olá Mariano, tudo bem?
Olha, estou lhe comunicando que acabei por resolver o problema.
Tratava-se de uma divergência de valores entre o DataSet e a tabela de dados.
Ao configurar valores diferentes daqueles que acompanham a definição dos tipos de campo na tabela, havemos que tomar o cuidado de também faze-lo na configuração do DataSet. Exemplo: quando configuramos a tabela e colocamos o tipo de dado como varchar essa definição vem acompanhada de um valor entre parêntesis varchar(50). Esse valor é o MaxLenght no DataSet. Se optarmos por modifica-lo para maior haveremos que alterá-lo também no MaxLenght do DataSet. Fiz as correções da forma como explanei e ficou tudo ok. Agradeço seu empenho.
- Sugerido como Resposta Mariano1776 sábado, 24 de fevereiro de 2018 20:18
- Marcado como Resposta ravazoni domingo, 25 de fevereiro de 2018 14:11
-