Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Haberbeck

Inserir valor nulo no campo DataTime

Recommended Posts

Olá pessoal,

 

Estou com um problema aki, tenho um campo no meu formulário que é de data(dd/m/aaaa) e não é obrigatório.

Ao gravar na base estou fazendo a seguinte verificação:

 

If IsDate(txtDataInicio_alt.Text) Then			dt_inicio = DateTime.Parse(txtDataInicio_alt.Text)		Else			dt_inicio = Convert.DBNull		End If

resumindo...se é data, insiro mas se vem vazio tenho que inserir NULO no banco.. e não estou conseguindo.

nessa linha:

dt_inicio = Convert.DBNull
dá o erro: Conversão do tipo 'DBNull' no tipo 'Date' não é válida.

 

como faço? já tentei inserir "" e também dá erro.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem como você postar o momento que você salva essa variavel no banco?Pq ai so mostra a variavel recebendo um valor ou nulo.Acho que fica mais facil de ajudar.Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue o código do evento do botão:

 

os campos são o @sist_dh_inicio e o @sist_dh_termino.

 

Private Sub btnAlterar_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnAlterar.Click		Try		 Dim reader As SqlDataReader = ProcExecuteReader("spSoli_CADASTRO_SISTEMA_man", _New SqlParameter("@sist_nm_abreviado", IIf(Not txtNomeAbreviado_alt.Text.Trim.Equals(String.Empty), txtNomeAbreviado_alt.Text.Trim, Convert.DBNull)), _New SqlParameter("@sist_nm_completo", IIf(Not txtNomeCompleto_alt.Text.Trim.Equals(String.Empty), txtNomeCompleto_alt.Text.Trim, Convert.DBNull)), _New SqlParameter("@sist_ds_plataforma", IIf(Not txtPlataforma_alt.Text.Trim.Equals(String.Empty), txtPlataforma_alt.Text.Trim, Convert.DBNull)), _New SqlParameter("@sist_dh_inicio", IIf(IsDate(txtDataInicio_alt.Text), DateTime.Parse(txtDataInicio_alt.Text), Convert.DBNull)), _New SqlParameter("@sist_dh_termino", IIf(IsDate(txtDataTermino_alt.Text), DateTime.Parse(txtDataTermino_alt.Text), Convert.DBNull)), _New SqlParameter("@sist_qt_tabela_estrangeira", IIf(Not txtTabelaEstrangeira_alt.Text.Trim.Equals(String.Empty), txtTabelaEstrangeira_alt.Text.Trim, Convert.DBNull)), _New SqlParameter("@sist_qt_tabela_propria", IIf(Not txtTabelaPropria_alt.Text.Trim.Equals(String.Empty), txtTabelaPropria_alt.Text.Trim, Convert.DBNull)), _New SqlParameter("@sist_qt_formulario", IIf(Not txtFormulário_alt.Text.Trim.Equals(String.Empty), txtFormulário_alt.Text.Trim, Convert.DBNull)), _New SqlParameter("@sist_qt_programa", IIf(Not txtPrograma_alt.Text.Trim.Equals(String.Empty), txtPrograma_alt.Text.Trim, Convert.DBNull)), _New SqlParameter("@sist_qt_relatorio", IIf(Not txtRelatorio_alt.Text.Trim.Equals(String.Empty), txtRelatorio_alt.Text.Trim, Convert.DBNull)), _New SqlParameter("@sist_cd_userupdate", CType(Session("usuario"), Usuario).Usuario), _New SqlParameter("@sist_cd_id", Request.QueryString("id")), _New SqlParameter("@tipo", 2))		Catch ex As Exception			Throw ex		End Try		RegisterStartupScript("Mensagem", "<script language='javascript'>alert('Registro alterado com sucesso!');</script>")		tb_Alterar.Visible = False		tb_Inserir.Visible = False		tb_Pesquisa.Visible = True	End Sub

No outro post eu mandei em um IF desmenbrado para tentar facilitar mas ele está dessa forma.

Nenhuma das tentativas eu consegui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.