none
Validação para Datas RRS feed

  • Pergunta

  • Olá Pessoal,
    Preciso fazer uma validação para datas em c#,
    Tenho as opções para inserir uma data de início e uma data de termino e não posso permitir que um novo registro seja inserido durante esse período ou com data igual a de início ou término.

    • Movido AndreAlvesLimaModerator segunda-feira, 15 de março de 2010 17:16 (De:.NET Framework - ADO (Acesso a dados, data access & storage))
    segunda-feira, 15 de março de 2010 13:45

Respostas

  • Oi Mari.
    Se entendi bem, você precisa verificar se a data início ou a data final estão dentro de algum período que já existe. É isso?
    Caso seja isso, eu resolveria com uma procedure retornando a quantidade de registros que atendem essa necessidade e no assembly verificaria se é maior que zero.

    A procedure seria algo assim:

    CREATE PROCEDURE SP_VERIFICAR_QTDE_REGISTROS_NO_PERIODO
    	@DT_INICIO DATETIME,
    	@DT_FIM DATETIME
    AS
    
    SELECT 
    	COUNT(*)
    FROM
    	TABELA
    WHERE
    		@DT_INICIO 	BETWEEN DT_INICIO AND DT_FIM
    	OR 	@DT_FIM 	BETWEEN DT_INICIO AND DT_FIM
    

    Caso o retorno seja maior que zero, você pode dizer que o período informado é inválido.

    Espero ter ajudado.

    Fábio Iodice Gasparro
    segunda-feira, 15 de março de 2010 19:00

Todas as Respostas

  • Olá...

    Dê maiores detalhes... É uma aplicação Windows? Web?

    Vai salvar no banco de dados? Já escolheu que tecnologia vai utilizar para fazer a persistência dos dados?
    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    segunda-feira, 15 de março de 2010 17:15
    Moderador
  • Olá,

    É uma aplicação Windows que se conecta a um banco de dados sql server.
    Na aplicação tenho a opção para inserir data de inicio e data de termino,
    e tenho que garantir que não será inserido outro registro com a mesma data ou que esteja dentro do intervalo que já foi inserido, essas informações são salvas no banco de dados.

    segunda-feira, 15 de março de 2010 18:01
  • Oi Mari.
    Se entendi bem, você precisa verificar se a data início ou a data final estão dentro de algum período que já existe. É isso?
    Caso seja isso, eu resolveria com uma procedure retornando a quantidade de registros que atendem essa necessidade e no assembly verificaria se é maior que zero.

    A procedure seria algo assim:

    CREATE PROCEDURE SP_VERIFICAR_QTDE_REGISTROS_NO_PERIODO
    	@DT_INICIO DATETIME,
    	@DT_FIM DATETIME
    AS
    
    SELECT 
    	COUNT(*)
    FROM
    	TABELA
    WHERE
    		@DT_INICIO 	BETWEEN DT_INICIO AND DT_FIM
    	OR 	@DT_FIM 	BETWEEN DT_INICIO AND DT_FIM
    

    Caso o retorno seja maior que zero, você pode dizer que o período informado é inválido.

    Espero ter ajudado.

    Fábio Iodice Gasparro
    segunda-feira, 15 de março de 2010 19:00