AVISO DE ERRO DE CONVERSÃO DE STRING NO START

 Tópico anterior Próximo tópico Novo tópico

AVISO DE ERRO DE CONVERSÃO DE STRING NO START

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#492471 - 01/02/2020 16:16:07

LIOMAR
STA MARIA DA VITORIA
Cadast. em:Dezembro/2005


Prezados,
Estou utilizando o Entity Framework 6, no conceito de DBContext.

Ao compilar o código não aparece erro, mas ao dar start/Debug no Projeto, aparece a mensagem de aviso: A Conversão da cadeia de caracteres ‘CodSenha’ no tipo ‘Integer’ não é válida.

Clicando no botão Ok, o programa continua e as operações de CRUD são realizadas normalmente. Não consegui encontrar a inconsistência ou a forma de evitar essa mensagem no carregar do sistema, se alguém puder orientar, agradeço muito. Estou utilizando esse Código no Visual Studio 2017, projeto VB Net.
Na Classe de Contexto:

Public Property tblSenha() As DbSet(Of Senha)
Na Classe da Tabela:
Imports System.ComponentModel.DataAnnotations
Imports System.ComponentModel.DataAnnotations.Schema

<Table("tblSenha")>
Public Class Senha
    <Key>
    Public Property CodSenha As Integer
    Public Property Usuário As String
    Public Property SenhaSis As String
End Class
No Load do Formulário:

Public Class FrmCadastroUsuario
    Dim SContexto As BDIndicacaoContexto
    Dim usuarioLista As List(Of Senha)
    Dim indiceAtual As Integer
    Dim change As Boolean = False
    Dim limpou As Boolean = False
SContexto = New BDIndicacaoContexto
usuarioLista = New List(Of Senha)
Dim usuarioConsulta = From p In SContexto.tblSenha
usuarioLista = usuarioConsulta.ToList
        preencheCampos()

Private Sub preencheCampos()

        Dim usuarioAtual As Senha = usuarioLista(indiceAtual)
        Usuario.Text = usuarioAtual.Usuário
        SenhaSis.Text = usuarioAtual.SenhaSis
        CodSenha.Text = usuarioAtual.CodSenha.ToString
    End Sub

Liomar Souza

Resposta escolhida #492472 - 01/02/2020 16:42:50

JABA
CABO FRIO
Cadast. em:Agosto/2005


Última edição em 01/02/2020 16:46:11 por JABA

Em alguma momento você está passando uma string em vez de um integer para esse campo CodSenha. Verifique na sua tabela se esse campo está como chave primária e declarado como inteiro. Faça um verificação de todos os dados que esse campo esteja recebendo, como string vazia ou alguma coisa que não seja inteiro.

Quando você for passar dados para o campo CodSenha do objeto Senha, converta explicitamente o valor para um inteiro, feito isso acho que resolve o problema.


_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizar quando o corpo está em movimento?



#492473 - 01/02/2020 19:02:14

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Quando usar EntityFramework, procure usar também migrations. Isso vai garantir que o modelo de dados e o modelo do banco estão sempre em sincronia.

_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


#492481 - 02/02/2020 22:15:41

LIOMAR
STA MARIA DA VITORIA
Cadast. em:Dezembro/2005



Obrigado JABA pela dica.
Encontrei a inconsistência. Tinha uma Combobox no formulário com essa propriedade: IdUsuario = CbxUsuario.ValueMember, onde IdUsuario recebia o valor de CodSenha (integer).

Agradeço a todos pela ajuda. Muito obrigado. às vezes um detalhe nos pega, então surge alguém mais iluminado e nos dá uma dica que nos mostra onde ocorre o problema.

Liomar Souza

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por LIOMAR em 02/02/2020 22:16:53