Array
(
)

Como faço para deixar o campo do tipo data/hora em brnaco

Pvioflas
   - 26 mar 2008

Olá pessoal criei um formulário de cadastro que quando eu deixo o campo de data em branco ele me dá um erro de typemismatch, no banco já está configurado para aceitar valor nulo como devo proceder?

Hugoestevam
   - 27 mar 2008

Bom Dia,

Você pode usar o C# Nullable Types, que é uma das grandes invenções feita para auxiliar o desenvolvedor a tratar as desigualdades de tipos entre aplicações que usam orientação a objeto e bando de dados relacional.

Para declarar um tipo Nullable em C é só usar a seguinte declaração:

#Código

private DateTime? _shipDate;

public DateTime? ShipDate
{
        get { return _shipDate; }
        set { _shipDate = value; }
}


Note que existe o ´?´ que define que o tipo declarado pode receber ´null´.
Com isso você pode atribuir um valor ´null´ a ela que não irá gerar uma exceção.
Para verificar se o tipo é nulo, você pode fazer de duas maneiras:

#Código
if (ShipDate != null) ...

//OU

if (ShipDate.HasValue) ...


Essa ultima opção, HasValue.... Tem Valor?...é permitida graças a estrutura que a variável recebe ao ser declarada do tipo Nullable. Veja a estrutura:
#Código
struct Nullable<T>
{
    public bool HasValue;
    public T Value;
}


E é isso, qualquer coisa de uma olhada em C# Nullable Types na internet.

Valeu!

Pvioflas
   - 30 mar 2008

Venci a Exception agora o que não estou consguindo vencer é gravar no banco o valor nulo, na hora do insert ele diz que o tipo de dados é incompativel.

Estou pesquisando a dias e não consigo fechar esse assunto.