Ilano 0 Denunciar post Postado Março 11, 2008 Olá pessoal, Estou tentando passar o valor de um campo Texto como parâmetro, mas está dando o erro na linha em vermelho: OCORREU O SEGUINTE ERRO: \nConversion from type 'DBNull' to type 'String' is not valid. O código está assim: Passando os Parâmetros: With Candidatos .Codigo = CInt(LbCodigo.Text) .Nome = UCase(Trim(TxtNome.Text)) .RG = Criptografia.ClassEncriptaDecripta.Criptografa(UCase(Trim(TxtRG.Text))) If IsDate(TxtDataEmissao.SelectedDate) Then .Emissao = pEmissao 'TxtDataEmissao.Text .OrgaoEmissor = UCase(Trim(TxtOrgaoEmissor.Text)) If TxtCPF.Text <> "" Then .CPF = Criptografia.ClassEncriptaDecripta.Criptografa(Trim(TxtCPF.Text)) Else .CPF = DBNull.Value Recebendo os Parâmetros: Public Function Inserir() As String Try ' Gera o código Db = New classDatabase.DbSql Db.NomeTabela = "TB_Candidatos" vlCodigo = Db.Chave("Cand_Codigo") Db = Nothing ' Atribui os valores aos parametros Cm = New SqlCommand With Cm .Parameters.Add("@Cand_Codigo", vlCodigo) .Parameters.Add("@Cand_Nome", vlNome) .Parameters.Add("@Cand_RG", Secreto.Criptografa((vlRG))) .Parameters.Add("@Cand_DataDeEmissao", vlEmissao) .Parameters.Add("@Cand_OrgaoEmissor", vlOrgaoEmissor) If Not IsDBNull(vlCPF) Then .Parameters.Add("@Cand_CPF", Secreto.Criptografa(vlCPF)) Else .Parameters.Add("@Cand_CPF", DBNull.Value) Na tabela, o campo é do tipo Varchar(200) pois será criptografado. Já a variável é do tipo String. O q pode estar errado neste código???? Grato, Ilano. Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Março 11, 2008 Uma variável do tipo string não pode receber apenas DBNull.Value, você pode usar da seguinte forma: Dim a As String a = DBNull.Value.ToString Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Ilano 0 Denunciar post Postado Março 11, 2008 beleza! Valeu quintelab!!!! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Compartilhar este post Link para o post Compartilhar em outros sites
Ilano 0 Denunciar post Postado Março 13, 2008 Estou retornando a este post para saber com vcs quando e como devo usar estas espressões para passar meus parâmetros: DBNull.Value DBNull.Value.Equals DBNull.Value.GetHashCode DBNull.Value.GetObjectData DBNull.Value.GetType DBNull.Value.GetTypeCode DBNull.Value.ReferenceEquals DBNull.Value.ToString (Este já sei q será usado para campos do tipo VarChar, mas é só para este tipo???) Qual deles uso para passar valores do tipo Int, Decimal, Image, ...??? Grato, Ilano. Compartilhar este post Link para o post Compartilhar em outros sites