Início > .NET > VB.net – Inserir valor NULL em campo DATE

VB.net – Inserir valor NULL em campo DATE

Tive um problema ao gerar um relatório. Quando eu não tinha uma data, precisava inserir alguma coisa no banco, pois o valor “” nao é válido para datas.

Imaginei criar uma data fictícia, do tipo 1/1/3999. Tudo bem, sempre que meu campo estava em branco passava a data em questão. No entanto, ao chamar o relatório, lá estava esta data atrapalhando tudo.

Consegui encontrar a seguinte solução.

1º passo: Receba a variável do textbox. Se for em branco ( “”)  ou no caso de você usar MaskedTextBox ( ”  /  /    “) atribua uma data, por exemplo, “1/1/3999”.

Dim inserir As New SUACLASSE

If txtChData1.Text <> ” / /” Then
inserir.dataCh1 = txtChData3.Text
Else
inserir.dataCh1 = “1/1/3999”
End If

2ª passo: Na hora da definição do parâmetro na classe ficará mais ou menos assim para passarmos um valor NULL para o banco:

 Dim DATE_ch1 As Date

Public Property dataCh1() As String

Get
Return DATE_ch1
End Get
Set(ByVal value As String)
DATE_ch1 = value
End Set
End Property

Dim conexao As SqlConnection
Dim comando As SqlCommand
conexao = New SqlConnection(“sua string de conexao”)
Try
conexao.Open()

comando = New SqlCommand(“INSERT INTO TABLE (data) VALUES (@chData1)”)
comando.Connection = conexao

‘Passando os parâmetros pro INSERT INTO

Dim parametro As New SqlParameter

parametro.ParameterName = “@chData1”
parametro.SqlDbType = SqlDbType.DateTime
parametro.Value = Me.dataCh1

If Me.dataCh1 = “01/01/3999” Then
parametro.Value = DBNull.Value
Else
parametro.Value = Me.dataCh1
End If
comando.Parameters.Add(parametro)

comando.ExecuteNonQuery()
conexao.Close()

Dessa maneira o banco recebe o valor NULL sem maiores problemas.

Obs: No exemplo utilizamos SQL Server. Pode variar ao trabalhar com outros tipos de banco de dados.

Anúncios
Categorias:.NET Tags:
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: